web develop

行胜于言

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

  1 using System;
  2 using System.Drawing;
  3 using System.Drawing.Imaging;
  4 using System.Windows.Forms;
  5 
  6 namespace GraphicsCopyright
  7 {
  8       /// <summary>
  9       /// Summary description for Form1.
 10       /// </summary>
 11       public class Form1 : System.Windows.Forms.Form
 12       {
 13             Image originalimage;
 14             
 15             private System.Windows.Forms.OpenFileDialog openFileDialog1;
 16             private System.Windows.Forms.PictureBox pictureBox1;
 17             private System.Windows.Forms.GroupBox groupBox1;
 18         private System.Windows.Forms.Button btnAddCopyright;
 19         private System.Windows.Forms.Button btnOpenFile;
 20             /// <summary>
 21             /// Required designer variable.
 22             /// </summary>
 23             private System.ComponentModel.Container components = null;
 24 
 25             public Form1()
 26             {
 27                   //
 28                   // Required for Windows Form Designer support
 29                   //
 30                   InitializeComponent();
 31 
 32                   //
 33                   // TODO: Add any constructor code after InitializeComponent call
 34                   //
 35             }
 36 
 37             /// <summary>
 38             /// Clean up any resources being used.
 39             /// </summary>
 40             protected override void Dispose( bool disposing )
 41             {
 42                   if( disposing )
 43                   {
 44                         if (components != null
 45                         {
 46                               components.Dispose();
 47                         }
 48                   }
 49                   base.Dispose( disposing );
 50             }
 51 
 52             #region Windows Form Designer generated code
 53             /// <summary>
 54             /// Required method for Designer support - do not modify
 55             /// the contents of this method with the code editor.
 56             /// </summary>
 57             private void InitializeComponent()
 58             {
 59                   this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
 60                   this.btnAddCopyright = new System.Windows.Forms.Button();
 61                   this.btnOpenFile = new System.Windows.Forms.Button();
 62                   this.pictureBox1 = new System.Windows.Forms.PictureBox();
 63                   this.groupBox1 = new System.Windows.Forms.GroupBox();
 64                   this.SuspendLayout();
 65                   // 
 66                   // btnAddCopyright
 67                   // 
 68                   this.btnAddCopyright.Enabled = false;
 69                   this.btnAddCopyright.Location = new System.Drawing.Point(216240);
 70                   this.btnAddCopyright.Name = "btnAddCopyright";
 71                   this.btnAddCopyright.Size = new System.Drawing.Size(16437);
 72                   this.btnAddCopyright.TabIndex = 0;
 73                   this.btnAddCopyright.Text = "添加版权信息";
 74                   this.btnAddCopyright.Click += new System.EventHandler(this.btnAddCopyright_Click);
 75                   // 
 76                   // btnOpenFile
 77                   // 
 78                   this.btnOpenFile.Location = new System.Drawing.Point(32240);
 79                   this.btnOpenFile.Name = "btnOpenFile";
 80                   this.btnOpenFile.Size = new System.Drawing.Size(16437);
 81                   this.btnOpenFile.TabIndex = 0;
 82                   this.btnOpenFile.Text = "打开图像文件";
 83                   this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click);
 84                   // 
 85                   // pictureBox1
 86                   // 
 87                   this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
 88                   this.pictureBox1.Location = new System.Drawing.Point(80);
 89                   this.pictureBox1.Name = "pictureBox1";
 90                   this.pictureBox1.Size = new System.Drawing.Size(400224);
 91                   this.pictureBox1.TabIndex = 0;
 92                   this.pictureBox1.TabStop = false;
 93                   // 
 94                   // groupBox1
 95                   // 
 96                   this.groupBox1.Location = new System.Drawing.Point(24224);
 97                   this.groupBox1.Name = "groupBox1";
 98                   this.groupBox1.Size = new System.Drawing.Size(36864);
 99                   this.groupBox1.TabIndex = 1;
100                   this.groupBox1.TabStop = false;
101                   // 
102                   // Form1
103                   // 
104                   this.AutoScaleBaseSize = new System.Drawing.Size(614);
105                   this.ClientSize = new System.Drawing.Size(416301);
106                   this.Controls.Add(this.pictureBox1);
107                   this.Controls.Add(this.btnAddCopyright);
108                   this.Controls.Add(this.btnOpenFile);
109                   this.Controls.Add(this.groupBox1);
110                   this.Name = "Form1";
111                   this.Text = "给图像添加版权信息";
112                   this.Load += new System.EventHandler(this.Form1_Load);
113                   this.ResumeLayout(false);
114 
115             }
116             #endregion
117 
118             /// <summary>
119             /// The main entry point for the application.
120             /// </summary>
121             [STAThread]
122             static void Main() 
123             {
124                   Application.Run(new Form1());
125             }
126 
127         private void btnOpenFile_Click(object sender, System.EventArgs e)
128         {
129             //Stream myStream;
130             OpenFileDialog openFileDialog1 = new OpenFileDialog();
131 
132             openFileDialog1.InitialDirectory = "c:\\" ;
133             openFileDialog1.Filter= "All files (*.*)|*.*";
134             openFileDialog1.FilterIndex = 2 ;
135             openFileDialog1.RestoreDirectory = true ;
136 
137             if(openFileDialog1.ShowDialog() == DialogResult.OK)
138             {
139                 originalimage = System.Drawing.Image.FromFile(openFileDialog1.FileName.ToString());
140                 Image ithumbnail = originalimage.GetThumbnailImage(200200nullnew IntPtr());
141                 pictureBox1.Image=ithumbnail;
142                 btnAddCopyright.Enabled = true;
143             }
144         }
145 
146         private void btnAddCopyright_Click(object sender, System.EventArgs e)
147         {
148             int imagewidth;
149             int imageheight;
150             int fontsize=300;
151             int x,y;
152             int a,re,gr,bl,x1,y1,z1;
153             int size;
154             Bitmap pattern;
155             SizeF sizeofstring;
156             bool foundfont;            
157             imagewidth=originalimage.Width;
158             imageheight=originalimage.Height;
159             size=imagewidth*imageheight;
160             pattern = new Bitmap(imagewidth,imageheight);
161             Bitmap temp = new Bitmap(originalimage);
162             Graphics g = Graphics.FromImage(pattern);
163             Graphics tempg =Graphics.FromImage(originalimage);
164             //find a font size that will fit in the bitmap
165             foundfont=false;
166             g.Clear(Color.White);
167             while(foundfont==false)
168             {
169                 Font fc = new Font("Georgia", fontsize, System.Drawing.FontStyle.Bold);
170                         
171                 sizeofstring=new SizeF(imagewidth,imageheight);
172                 sizeofstring=g.MeasureString("DOTNET",fc);
173                 if (sizeofstring.Width<pattern.Width)
174                 {
175                     if (sizeofstring.Height<pattern.Height)
176                     {
177                         foundfont=true;
178                         g.DrawString("DOTNET", fc, new SolidBrush(Color.Black),1,1);
179                     }
180 
181                 }
182                 else
183                     fontsize=fontsize-1;                  
184             }
185             MessageBox.Show("已创建新文件","给图像添加版权信息");
186             for(x=1;x<pattern.Width;x++)
187             {
188                 for(y=1;y<pattern.Height;y++)//
189                 {
190                     if (pattern.GetPixel(x,y).ToArgb()==Color.Black.ToArgb())
191                     {
192                         a=temp.GetPixel(x,y).A;
193                         re=temp.GetPixel(x,y).R;
194                         gr=temp.GetPixel(x,y).G;
195                         bl=temp.GetPixel(x,y).B;
196                                                                         
197                         x1=re;
198                         y1=gr;
199                         z1=bl;                                    
200                                     
201                         if (bl+25<255)
202                             bl=bl+25;                              
203                         if (gr+25<255)
204                             gr=gr+25;                                    
205                         if (re+25<255)
206                             re=re+25;
207                         if (x1-25>0)
208                             x1=x1-25;                              
209                         if (y1-25>0)
210                             y1=y1-25;                                    
211                         if (z1-25>0)
212                             z1=z1-25;                  
213                                     
214                         tempg.DrawEllipse(new Pen(new SolidBrush(Color.Black)),x,y+1,3,3);
215                         tempg.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(a,x1,y1,z1))),x,y,1,1);
216                     }                        
217                 }            
218             }
219             MessageBox.Show("输出文件是c:\\output.jpeg","给图像添加版权信息");
220             tempg.Save();
221             originalimage.Save("c:\\output.jpeg",ImageFormat.Jpeg);
222         }
223 
224             private void Form1_Load(object sender, System.EventArgs e)
225             {
226             
227             }
228       }
229 }
230 



posted on 2006-04-11 08:29  曾经有梦  阅读(500)  评论(0编辑  收藏  举报