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);
关键字词: