public  class  bmp2jpeg  
           {  
                       private  long  lquality=50l;  
                       private  imagecodecinfo  myimagecodecinfo;  
                       private            encoderparameters  myencoderparameters;  
                       public  bmp2jpeg(long  quality)  
                       {  
                                   lquality=quality;  
                                   ini();  
                       }  
                       private  void  ini()  
                       {  
                                   system.drawing.imaging.encoder  myencoder;  
                                   encoderparameter  myencoderparameter;  
                                   myimagecodecinfo  =  getencoderinfo("image/jpeg");  
                                   myencoder  =  system.drawing.imaging.encoder.quality;  
                                   myencoderparameters  =  new  encoderparameters(1);  
                                   myencoderparameter  =  new  encoderparameter(myencoder,lquality);  
                                   myencoderparameters.param[0]  =  myencoderparameter;  
                       }  
                       public  bmp2jpeg()  
                       {  
                                   ini();  
                       }  
                       private  static  imagecodecinfo  getencoderinfo(string  mimetype)  
                       {  
                                   int  j;  
                                   imagecodecinfo[]  encoders;  
                                   encoders  =  imagecodecinfo.getimageencoders();  
                                   for(j  =  0;  j  <  encoders.length;  ++j)  
                                   {  
                                               if(encoders[j].mimetype  ==  mimetype)  
                                                           return  encoders[j];  
                                   }  
                                   return  null;  
                       }  
                       public  byte[]  bmptojpegbuff(bitmap  bmpsrc)  
                       {  
                                   memorystream  msjpg=new  memorystream();  
                                   bmpsrc.save(msjpg,  myimagecodecinfo,  myencoderparameters);  
                                   byte[]  bjpeg=msjpg.toarray();  
                                     
                                   return  bjpeg;  
 
                       }  
                       public  byte[]  bmptojpegbuff(byte[]  bmpsrc)  
                       {  
                                   memorystream  ms=new  memorystream(bmpsrc);  
                                   memorystream  msjpg=new  memorystream();  
                                   bitmap  mybitmap  =  new  bitmap(ms,false);  
                                   //mybitmap.save("c://temp//"+i.tostring()+".jpg",  myimagecodecinfo,  myencoderparameters);  
                                   mybitmap.save(msjpg,  myimagecodecinfo,  myencoderparameters);  
                                   byte[]  bjpeg=msjpg.toarray();  
                                     
                                   return  bjpeg;  
                       }  
                       public  stream  bmptojpegstream(byte[]  bmpsrc)  
                       {  
                                   memorystream  ms=new  memorystream(bmpsrc);  
                                   memorystream  msjpg=new  memorystream();  
                                   bitmap  mybitmap  =  new  bitmap(ms,false);  
                                   //mybitmap.save("c://temp//"+i.tostring()+".jpg",  myimagecodecinfo,  myencoderparameters);  
                                   mybitmap.save(msjpg,  myimagecodecinfo,  myencoderparameters);  
                                   return  msjpg;  
                       }  
                       public  bool  bmptojpegfile(byte[]  bmpsrc,string  filename)  
                       {  
                                   memorystream  ms=new  memorystream(bmpsrc);  
                                   bitmap  mybitmap=new  bitmap(ms,false);  
                                   mybitmap.save(filename,myimagecodecinfo,myencoderparameters);  
                                   return  true;  
                       }  
                       public  bool  bmptojpegfile1(bitmap  bmpsrc,string  filename)  
                       {  
                                   bmpsrc.save(filename,myimagecodecinfo,myencoderparameters);  
                                   return  true;  
                       }  
           }  
 
---------------------------------------------------------------  
 
最简单的方式应该是:  
bitmap  image  =  new  bitmap("your  image  path.bmp");  
image.save("new  jpg  file  path",  imageformat.jpg);  
 
注意:别忘了引入名称空间。  
 
另外,jpg的压缩率相对于相同内容大小精度的bmp来说也是不同的,总之很大就是了。尤其是简单的图形压缩率很好。  
---------------------------------------------------------------  
 
imageformat  类(在命名空间  system.drawing.imaging  下),就可以实现bmp、gif、icon、jpeg、png、tiff、wmf等常见图象格式之间的转化了。  
打开需要转换的文件,存放在一个变量中  
bitmap.save(filename,  imageformat.jpg);
新闻热点
疑难解答