45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何将C#中将.bmp转为.jpg格式?

如何将C#中将.bmp转为.jpg格式?

2016-09-02 09:08:49 来源:www.45fan.com 【

如何将C#中将.bmp转为.jpg格式?

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);

 

本文地址:http://www.45fan.com/a/question/71127.html
Tags: 格式 .bmp .jpg
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部