打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在C#中将.bmp转为.jpg格式的方法

在C#中将.bmp转为.jpg格式的函数或类是什么,以及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); 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MSDN:C#(.NET)自带的图像压缩代码
远程控制篇:抓取远程屏幕图像
[C#] 在图片上添加文字
c# GDI 改变图片保存时的质量
大陆女星名单
c# – 来自Stream的位图:Bug?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服