利用GDI+分割图片,在图片上加字

System.Drawing.Image img;
            System.Drawing.Graphics g;
            System.Drawing.Bitmap bmp;
        
            img
=System.Drawing.Image.FromFile(filename);

            
if(img.Width!=768 ||img.Height!=928)
                
return "";
            
if(!BakFilePath.Equals("nobak"&& !File.Exists(this.BakFilePath+Path.GetFileName(filename))  )
                File.Copy(filename,
this.BakFilePath+Path.GetFileName(filename));
            bmp
=new Bitmap(1536,304,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            g
=System.Drawing.Graphics.FromImage(bmp);            
            g.DrawImage(img,
0,0,new Rectangle(0,608,768,304),GraphicsUnit.Pixel);//取第三张
            
            g.DrawImage(img,
768,0,new Rectangle(0,304,768,304),GraphicsUnit.Pixel);//第一张
            
            
/*************************加字*******************************/        
            SolidBrush drawBrush 
= new SolidBrush(Color.Red); 
            Font drawFont 
= new Font("Arial"4, FontStyle.Regular, GraphicsUnit.Millimeter); 
            
float xPos = 550
            
float yPos = 0
            
            
decimal Speed,SpeedP;        
            Speed
=decimal.Parse(PicConvert.LoadConfig("Speed"));
            SpeedP 
=decimal.Parse(PicConvert.LoadConfig("SpeedP"));
            
//g.DrawString("限速"+Speed+"公里/小时 超速百分比:"+SpeedP+"%", drawFont, drawBrush, xPos, yPos); 
            g.DrawString("限速:"+Speed+"公里 超速:"+SpeedP+" %", drawFont, drawBrush, xPos, yPos); 
//            newbmp=new Bitmap(bmp,1536,592);
            /*************************加字*******************************/

/*********************************************************************/
//            ImageCodecInfo[]  codecs=ImageCodecInfo.GetImageEncoders();    
//        
//            ImageCodecInfo  ici=null;  
//            foreach(ImageCodecInfo  codec  in  codecs)  
//            {  
//                if(codec.MimeType=="image/jpeg")  
//                    ici=codec;  
//            }  
//            
//            EncoderParameters  ep=new  EncoderParameters();  
//            ep.Param[0]=new  EncoderParameter(Encoder.Quality,(long)25);  
//            newbmp.Save(this.DesFilePath+@"\"+newfilename,ici,ep);    


            Bitmap myBitmap;
            ImageCodecInfo myImageCodecInfo;
            Encoder myEncoder;
            EncoderParameter myEncoderParameter;
            EncoderParameters myEncoderParameters;
            
// Create a Bitmap object based on a BMP file.
            myBitmap = new Bitmap(bmp,1536,592);
            
// Get an ImageCodecInfo object that represents the JPEG codec.
            myImageCodecInfo = GetEncoderInfo("image/jpeg");
            
// Create an Encoder object based on the GUID
            
// for the Quality parameter category.
            myEncoder = Encoder.Quality;
            
// Create an EncoderParameters object.
            
// An EncoderParameters object has an array of EncoderParameter
            
// objects. In this case, there is only one
            
// EncoderParameter object in the array.
            myEncoderParameters = new EncoderParameters(1);
            
// Save the bitmap as a JPEG file with quality level 25.
            myEncoderParameter = new EncoderParameter(myEncoder, 40L);
            myEncoderParameters.Param[
0= myEncoderParameter;
            myBitmap.Save(
this.DesFilePath+@"\"+newfilename, myImageCodecInfo, myEncoderParameters);
//            // Save the bitmap as a JPEG file with quality level 50.
//            myEncoderParameter = new EncoderParameter(myEncoder, 50L);
//            myEncoderParameters.Param[0] = myEncoderParameter;
//            myBitmap.Save(this.DesFilePath+@"\"+"Shapes050"+newfilename, myImageCodecInfo, myEncoderParameters);
//            // Save the bitmap as a JPEG file with quality level 75.
//            myEncoderParameter = new EncoderParameter(myEncoder, 75L);
//            myEncoderParameters.Param[0] = myEncoderParameter;
//            myBitmap.Save(this.DesFilePath+@"\"+"Shapes075"+newfilename, myImageCodecInfo, myEncoderParameters);

            
/*****************************************************/
            
//newbmp.Save(this.DesFilePath+@"\"+newfilename,System.Drawing.Imaging.ImageFormat.Jpeg);    
            myBitmap.Dispose();
            bmp.Dispose();
            g.Dispose();
            img.Dispose();
            File.Delete(filename);
            
return newfilename;
原文地址:https://www.cnblogs.com/lidune/p/546747.html