php教程 php手册 C#图片加水印实例与代码

C#图片加水印实例与代码

Jul 06, 2016 pm 01:30 PM
암호 그림 공급 문자 양수표

本文要提供的类可以为图片加文字水印,以及判断是否是图片文件。经过测试可运行,例子请下载:http://hovertree.com/h/bjaf/5qc5eh6y.htm 例子效果图: 以下是HovercWarter类的代码: 1 using System.Drawing; 2 using System.Drawing.Imaging; 3 using Syst

本文要提供的类可以为图片加文字水印,以及判断是否是图片文件。经过测试可运行,例子请下载:http://hovertree.com/h/bjaf/5qc5eh6y.htm

例子效果图:

以下是HovercWarter类的代码:

<span style="color: #008080;"> 1</span> <span style="color: #0000ff;">using</span><span style="color: #000000;"> System.Drawing;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">using</span><span style="color: #000000;"> System.Drawing.Imaging;
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">using</span><span style="color: #000000;"> System.IO;
</span><span style="color: #008080;"> 4</span> 
<span style="color: #008080;"> 5</span> <span style="color: #0000ff;">namespace</span><span style="color: #000000;"> HoverTreeBatch.HovercFrame
</span><span style="color: #008080;"> 6</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> HovercWarter
</span><span style="color: #008080;"> 8</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> Image AddTextToImg(Image image, <span style="color: #0000ff;">string</span><span style="color: #000000;"> text)
</span><span style="color: #008080;">10</span> <span style="color: #000000;">{
</span><span style="color: #008080;">11</span> Bitmap bitmap = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Bitmap(image, image.Width, image.Height);
</span><span style="color: #008080;">12</span> Graphics g =<span style="color: #000000;"> Graphics.FromImage(bitmap);
</span><span style="color: #008080;">13</span> 
<span style="color: #008080;">14</span> <span style="color: #0000ff;">float</span> fontSize = <span style="color: #800080;">12.0f</span>; <span style="color: #008000;">//</span><span style="color: #008000;">字体大小</span>
<span style="color: #008080;">15</span> <span style="color: #0000ff;">float</span> textWidth = text.Length * fontSize; <span style="color: #008000;">//</span><span style="color: #008000;">文本的长度
</span><span style="color: #008080;">16</span> <span style="color: #008000;">//</span><span style="color: #008000;">下面定义一个矩形区域,以后在这个矩形里画上白底黑字</span>
<span style="color: #008080;">17</span> <span style="color: #0000ff;">float</span> rectX = <span style="color: #800080;">0</span><span style="color: #000000;">;
</span><span style="color: #008080;">18</span> <span style="color: #0000ff;">float</span> rectY = <span style="color: #800080;">0</span><span style="color: #000000;">;
</span><span style="color: #008080;">19</span> <span style="color: #0000ff;">float</span> rectWidth = text.Length * (fontSize + <span style="color: #800080;">8</span><span style="color: #000000;">);
</span><span style="color: #008080;">20</span> <span style="color: #0000ff;">float</span> rectHeight = fontSize + <span style="color: #800080;">8</span><span style="color: #000000;">;
</span><span style="color: #008080;">21</span> <span style="color: #008000;">//</span><span style="color: #008000;">声明矩形域</span>
<span style="color: #008080;">22</span> RectangleF textArea = <span style="color: #0000ff;">new</span><span style="color: #000000;"> RectangleF(rectX, rectY, rectWidth, rectHeight);
</span><span style="color: #008080;">23</span> 
<span style="color: #008080;">24</span> Font font = <span style="color: #0000ff;">new</span> Font(<span style="color: #800000;">"</span><span style="color: #800000;">宋体</span><span style="color: #800000;">"</span>, fontSize); <span style="color: #008000;">//</span><span style="color: #008000;">定义字体</span>
<span style="color: #008080;">25</span> Brush whiteBrush = <span style="color: #0000ff;">new</span> SolidBrush(Color.White); <span style="color: #008000;">//</span><span style="color: #008000;">白笔刷,画文字用</span>
<span style="color: #008080;">26</span> Brush blackBrush = <span style="color: #0000ff;">new</span> SolidBrush(Color.Black); <span style="color: #008000;">//</span><span style="color: #008000;">黑笔刷,画背景用</span>
<span style="color: #008080;">27</span> 
<span style="color: #008080;">28</span> <span style="color: #000000;">g.FillRectangle(blackBrush, rectX, rectY, rectWidth, rectHeight);
</span><span style="color: #008080;">29</span> 
<span style="color: #008080;">30</span> <span style="color: #000000;">g.DrawString(text, font, whiteBrush, textArea);
</span><span style="color: #008080;">31</span> MemoryStream ms = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MemoryStream();
</span><span style="color: #008080;">32</span> <span style="color: #008000;">//</span><span style="color: #008000;">保存为Jpg类型</span>
<span style="color: #008080;">33</span> <span style="color: #000000;">bitmap.Save(ms, ImageFormat.Jpeg);
</span><span style="color: #008080;">34</span> 
<span style="color: #008080;">35</span> Image h_hovercImg =<span style="color: #000000;"> Image.FromStream(ms);
</span><span style="color: #008080;">36</span> 
<span style="color: #008080;">37</span> <span style="color: #000000;">g.Dispose();
</span><span style="color: #008080;">38</span> <span style="color: #000000;">bitmap.Dispose();
</span><span style="color: #008080;">39</span> 
<span style="color: #008080;">40</span> 
<span style="color: #008080;">41</span> <span style="color: #0000ff;">return</span><span style="color: #000000;"> h_hovercImg;
</span><span style="color: #008080;">42</span> <span style="color: #000000;">}
</span><span style="color: #008080;">43</span> 
<span style="color: #008080;">44</span> 
<span style="color: #008080;">45</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span>
<span style="color: #008080;">46</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 根据文件头判断上传的文件类型
</span><span style="color: #008080;">47</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></span>
<span style="color: #008080;">48</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="filePath"></span><span style="color: #008000;">filePath是文件的完整路径 </span><span style="color: #808080;"></span>
<span style="color: #008080;">49</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></returns></span><span style="color: #008000;">返回true或false</span><span style="color: #808080;"></span>
<span style="color: #008080;">50</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">bool</span> IsPicture(<span style="color: #0000ff;">string</span><span style="color: #000000;"> filePath)
</span><span style="color: #008080;">51</span> <span style="color: #000000;">{
</span><span style="color: #008080;">52</span> <span style="color: #0000ff;">try</span>
<span style="color: #008080;">53</span> <span style="color: #000000;">{
</span><span style="color: #008080;">54</span> FileStream fs = <span style="color: #0000ff;">new</span><span style="color: #000000;"> FileStream(filePath, FileMode.Open, Fileaccess.Read);
</span><span style="color: #008080;">55</span> BinaryReader reader = <span style="color: #0000ff;">new</span><span style="color: #000000;"> BinaryReader(fs);
</span><span style="color: #008080;">56</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> fileClass;
</span><span style="color: #008080;">57</span> <span style="color: #0000ff;">byte</span><span style="color: #000000;"> buffer;
</span><span style="color: #008080;">58</span> buffer =<span style="color: #000000;"> reader.ReadByte();
</span><span style="color: #008080;">59</span> fileClass =<span style="color: #000000;"> buffer.ToString();
</span><span style="color: #008080;">60</span> buffer =<span style="color: #000000;"> reader.ReadByte();
</span><span style="color: #008080;">61</span> fileClass +=<span style="color: #000000;"> buffer.ToString();
</span><span style="color: #008080;">62</span> <span style="color: #000000;">reader.Close();
</span><span style="color: #008080;">63</span> <span style="color: #000000;">fs.Close();
</span><span style="color: #008080;">64</span> <span style="color: #0000ff;">if</span> (fileClass == <span style="color: #800000;">"</span><span style="color: #800000;">255216</span><span style="color: #800000;">"</span> || fileClass == <span style="color: #800000;">"</span><span style="color: #800000;">7173</span><span style="color: #800000;">"</span> || fileClass == <span style="color: #800000;">"</span><span style="color: #800000;">13780</span><span style="color: #800000;">"</span> || fileClass == <span style="color: #800000;">"</span><span style="color: #800000;">6677</span><span style="color: #800000;">"</span><span style="color: #000000;">)
</span><span style="color: #008080;">65</span> <span style="color: #008000;">//</span><span style="color: #008000;">何问起 hovertree.com
</span><span style="color: #008080;">66</span> <span style="color: #008000;">//</span><span style="color: #008000;">255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar </span>
<span style="color: #008080;">67</span> <span style="color: #000000;">{
</span><span style="color: #008080;">68</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #008080;">69</span> <span style="color: #000000;">}
</span><span style="color: #008080;">70</span> <span style="color: #0000ff;">else</span>
<span style="color: #008080;">71</span> <span style="color: #000000;">{
</span><span style="color: #008080;">72</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
</span><span style="color: #008080;">73</span> <span style="color: #000000;">}
</span><span style="color: #008080;">74</span> <span style="color: #000000;">}
</span><span style="color: #008080;">75</span> <span style="color: #0000ff;">catch</span>
<span style="color: #008080;">76</span> <span style="color: #000000;">{
</span><span style="color: #008080;">77</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
</span><span style="color: #008080;">78</span> <span style="color: #000000;">}
</span><span style="color: #008080;">79</span> <span style="color: #000000;">}
</span><span style="color: #008080;">80</span> <span style="color: #000000;">}
</span><span style="color: #008080;">81</span> }
로그인 후 복사

另外出一道.NET的题目:http://hovertree.com/shortanswer/bjaf/9vqxwuda.htm

开发技术文章收集: http://www.cnblogs.com/sosoft/p/kaifajishu.html


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PPT에서 둥근 그림과 텍스트를 만드는 방법 PPT에서 둥근 그림과 텍스트를 만드는 방법 Mar 26, 2024 am 10:23 AM

먼저 PPT에 원을 그린 후 텍스트 상자를 삽입하고 텍스트 내용을 입력합니다. 마지막으로 텍스트 상자의 채우기와 윤곽선을 없음으로 설정하면 원형 그림과 텍스트 제작이 완료됩니다.

Meitu Xiuxiu에 워터마크를 추가하는 방법은 무엇입니까? 아름다운 사진에 워터마크를 추가하는 방법을 공유해보세요! Meitu Xiuxiu에 워터마크를 추가하는 방법은 무엇입니까? 아름다운 사진에 워터마크를 추가하는 방법을 공유해보세요! Mar 16, 2024 pm 09:55 PM

MeituXiuXiu에 워터마크를 추가하는 방법을 알고 싶으십니까? Meitu Xiuxiu는 사진을 잘라내어 다른 사진에 배치, 사진 크기를 kb 단위로 변경, 워터마크 제거, 신분증 사진의 배경색 변경, 시간 추가 등의 기능을 제공하는 매우 사용하기 쉬운 사진 편집 소프트웨어입니다. , 날짜 및 위치 워터마크를 전체 화면에 표시하여 사용자가 사진 제작을 빠르게 완료할 수 있도록 도와줍니다. 일부 사용자는 자신의 사진을 만들어 다른 사람이 훔치는 것을 원하지 않지만 자신의 워터마크로 덮고 싶지만 어떻게 해야 할지 모르시나요? 이제 편집자가 아름다운 사진에 워터마크를 추가하는 방법을 알려드리겠습니다! 마음에 드신다면 오셔서 다운로드 받으세요! 1. Meitu Xiuxiu에 워터마크를 추가하는 방법은 무엇입니까? 아름다운 사진에 워터마크를 추가하는 방법을 공유해보세요! 1. 이 사이트에서 다운로드한 Meitu Xiu Xiu 2023 버전을 엽니다. Meitu Xiu Xiu 2023 버전 카테고리: 사진 및 미화 Meitu Xiu Xiu 2023 버전은 기능이 풍부한 사진 미화 및 편집 소프트웨어 다운로드

Xiaohongshu에 게시할 때 사진이 자동으로 저장되는 문제를 해결하는 방법은 무엇입니까? 포스팅 시 자동으로 저장되는 이미지는 어디에 있나요? Xiaohongshu에 게시할 때 사진이 자동으로 저장되는 문제를 해결하는 방법은 무엇입니까? 포스팅 시 자동으로 저장되는 이미지는 어디에 있나요? Mar 22, 2024 am 08:06 AM

소셜 미디어의 지속적인 발전으로 Xiaohongshu는 점점 더 많은 젊은이들이 자신의 삶을 공유하고 아름다운 것을 발견할 수 있는 플랫폼이 되었습니다. 많은 사용자들이 이미지 게시 시 자동 저장 문제로 고민하고 있습니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 1. Xiaohongshu에 게시할 때 사진이 자동으로 저장되는 문제를 해결하는 방법은 무엇입니까? 1. 캐시 지우기 먼저 Xiaohongshu의 캐시 데이터를 지워볼 수 있습니다. 단계는 다음과 같습니다. (1) Xiaohongshu를 열고 오른쪽 하단에 있는 "내" 버튼을 클릭합니다. (2) 개인 센터 페이지에서 "설정"을 찾아 클릭합니다. 캐시 지우기' 옵션을 선택하고 확인을 클릭하세요. 캐시를 삭제한 후 샤오홍슈에 다시 진입하여 사진을 올려 자동 저장 문제가 해결되었는지 확인해 보세요. 2. Xiaohongshu 버전을 업데이트하여 Xiaohongshu를 확인하세요.

Scanner Almighty로 워터마크를 제거하는 방법 Scanner Almighty로 워터마크를 제거하는 방법 Mar 05, 2024 pm 05:34 PM

워터마크 제거는 소프트웨어 스캐너의 유용한 도구입니다. 일부 사용자는 스캐너에서 워터마크를 제거하는 방법을 잘 모릅니다. PDF 편집에서 워터마크 제거를 클릭하여 닫을 수 있습니다. 다음으로 편집자가 소개를 가져왔습니다. 워터마크 없애는 방법 궁금하신 분들은 구경오세요! Scanner King 사용 튜토리얼 Scanner King으로 워터마크를 제거하는 방법 답변: 저장 인터페이스를 클릭하여 PDF에서 워터마크 제거를 편집할 수 있습니다. 세부 사항: 1. 소프트웨어를 입력하고 [카메라] 아이콘을 클릭합니다. 2. 워터마킹이 필요한 문서의 사진을 찍고 스캔합니다. 3. [→]를 클릭하여 다음 단계로 진행하세요. 4. 편집이 완료되면 [✓]를 클릭하세요. 5. [PDF 편집]을 클릭하세요. 6. 아래의 [워터마크 제거]를 선택하세요.

TikTok 댓글에 사진을 게시하는 방법은 무엇입니까? 댓글란에 있는 사진의 입구는 어디인가요? TikTok 댓글에 사진을 게시하는 방법은 무엇입니까? 댓글란에 있는 사진의 입구는 어디인가요? Mar 21, 2024 pm 09:12 PM

Douyin 짧은 동영상의 인기로 인해 댓글 영역의 사용자 상호 작용이 더욱 다채로워졌습니다. 일부 사용자는 자신의 의견이나 감정을 더 잘 표현하기 위해 댓글로 이미지를 공유하기를 원합니다. 그렇다면 TikTok 댓글에 사진을 게시하는 방법은 무엇입니까? 이 기사에서는 이 질문에 대해 자세히 답변하고 몇 가지 관련 팁과 예방 조치를 제공합니다. 1. Douyin 댓글에 사진을 어떻게 게시하나요? 1. Douyin 열기: 먼저 Douyin 앱을 열고 계정에 로그인해야 합니다. 2. 댓글 영역 찾기: 짧은 동영상을 탐색하거나 게시할 때 댓글을 달고 싶은 위치를 찾아 "댓글" 버튼을 클릭하세요. 3. 댓글 내용 입력: 댓글 영역에 댓글 내용을 입력합니다. 4. 사진 전송 선택: 댓글 내용 입력 인터페이스에 "사진" 버튼 또는 "+" 버튼이 표시됩니다.

Xiaomi Mi 14에서 사진 워터마크를 설정하는 방법은 무엇입니까? Xiaomi Mi 14에서 사진 워터마크를 설정하는 방법은 무엇입니까? Mar 18, 2024 am 11:00 AM

찍은 사진을 더욱 개인화되고 독특하게 만들기 위해 Xiaomi Mi 14는 사진 워터마크 설정을 제공합니다. 사진 워터마크를 설정하면 사용자는 자신이 찍은 사진에 패턴, 텍스트, 로고를 추가할 수 있어 각 사진이 소중한 순간과 추억을 더 잘 기록할 수 있습니다. 다음으로 Xiaomi 14에서 사진 워터마크를 설정하여 사진을 더욱 개인화되고 생생하게 만드는 방법을 소개하겠습니다. Xiaomi Mi 14에서 사진 워터마크를 설정하는 방법은 무엇입니까? 1. 먼저 '카메라'를 클릭하세요. 2. 그런 다음 "설정"을 클릭합니다. 3. 그런 다음 워터마크를 찾으면 촬영을 시작할 수 있습니다.

Word에서 텍스트에 점을 추가하는 방법은 무엇입니까? Word에서 텍스트에 점을 추가하는 방법은 무엇입니까? Mar 19, 2024 pm 08:04 PM

매일 Word 문서를 만들 때 문서의 특정 단어 아래에 점을 추가해야 하는 경우가 있습니다. 특히 시험 문제가 있는 경우에는 더욱 그렇습니다. 콘텐츠의 이 부분을 강조하기 위해 편집자는 Word에서 텍스트에 점을 추가하는 방법에 대한 팁을 공유할 것입니다. 도움이 되기를 바랍니다. 1. 빈 워드 문서를 엽니다. 2. 예를 들어 "텍스트에 점을 추가하는 방법"이라는 단어 아래에 점을 추가합니다. 3. 먼저 마우스 왼쪽 버튼으로 "텍스트에 점을 추가하는 방법"이라는 단어를 선택합니다. 나중에 해당 단어에 점을 추가하려면 먼저 마우스 왼쪽 버튼을 사용하여 원하는 단어를 선택해야 합니다. . 오늘 우리는 이 단어들에 점을 추가할 것이므로 여러 단어를 선택했습니다. 해당 단어를 선택하고 마우스 오른쪽 버튼을 클릭한 후 팝업 기능 상자에서 글꼴을 클릭합니다. 4. 그러면 이와 같은 것이 나타날 것입니다

win11 24H2 오른쪽 하단에 있는 평가판 워터마크를 제거하는 방법은 무엇입니까? win11 오른쪽 하단에 있는 평가판 제거 팁 win11 24H2 오른쪽 하단에 있는 평가판 워터마크를 제거하는 방법은 무엇입니까? win11 오른쪽 하단에 있는 평가판 제거 팁 Jun 01, 2024 pm 09:52 PM

win1124H2 오른쪽 하단에 있는 평가판 텍스트를 제거하는 방법은 무엇입니까? 시스템을 사용할 때 바탕 화면의 오른쪽 하단에 투명한 워터마크가 표시되는 경우가 있습니다. 그러면 이 투명한 워터마크를 어떻게 제거합니까? 사용자는 타사 소프트웨어를 직접 사용하여 작동할 수 있습니다. 이 사이트에서는 win1124H2 평가판의 워터마크를 제거하는 방법을 사용자에게 주의 깊게 소개합니다. win1124H2 평가판의 워터마크를 제거하려면 UniversalWatermarkDisabler 도구를 다운로드하세요. 실행 후 현재 시스템 버전과 워터마크 상태가 표시됩니다. "상태"에 "설치 준비 완료"가 표시되면 제거할 수 있습니다.

See all articles