📄 subject_17757.htm
字号:
<p>
序号:17757 发表者:cer 发表日期:2002-10-15 11:30:00
<br>主题:在.net中将.bmp转为.jpg格式的函数或类是什么,以及jpg文件的压缩函数
<br>内容:在.net中将.bmp转为.jpg格式的函数或类是什么,以及jpg文件的压缩函数
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:落叶夏日 回复日期:2002-10-17 21:41:28
<br>内容:public class Bmp2Jpeg<BR> {<BR> private long lQuality=50L;<BR> private ImageCodecInfo myImageCodecInfo;<BR> private EncoderParameters myEncoderParameters;<BR> public Bmp2Jpeg(long Quality)<BR> {<BR> lQuality=Quality;<BR> Ini();<BR> }<BR> private void Ini()<BR> {<BR> System.Drawing.Imaging.Encoder myEncoder;<BR> EncoderParameter myEncoderParameter;<BR> myImageCodecInfo = GetEncoderInfo("image/jpeg");<BR> myEncoder = System.Drawing.Imaging.Encoder.Quality;<BR> myEncoderParameters = new EncoderParameters(1);<BR> myEncoderParameter = new EncoderParameter(myEncoder,lQuality);<BR> myEncoderParameters.Param[0] = myEncoderParameter;<BR> }<BR> public Bmp2Jpeg()<BR> {<BR> Ini();<BR> }<BR> private static ImageCodecInfo GetEncoderInfo(String mimeType)<BR> {<BR> int j;<BR> ImageCodecInfo[] encoders;<BR> encoders = ImageCodecInfo.GetImageEncoders();<BR> for(j = 0; j < encoders.Length; ++j)<BR> {<BR> if(encoders[j].MimeType == mimeType)<BR> return encoders[j];<BR> }<BR> return null;<BR> }<BR> public byte[] BmpToJpegBuff(Bitmap bmpSrc)<BR> {<BR> MemoryStream msjpg=new MemoryStream();<BR> bmpSrc.Save(msjpg, myImageCodecInfo, myEncoderParameters);<BR> byte[] bjpeg=msjpg.ToArray();<BR> <BR> return bjpeg;<BR><BR> }<BR> public byte[] BmpToJpegBuff(byte[] bmpSrc)<BR> {<BR> MemoryStream ms=new MemoryStream(bmpSrc);<BR> MemoryStream msjpg=new MemoryStream();<BR> Bitmap myBitmap = new Bitmap(ms,false);<BR> //myBitmap.Save("c:\\temp\\"+i.ToString()+".jpg", myImageCodecInfo, myEncoderParameters);<BR> myBitmap.Save(msjpg, myImageCodecInfo, myEncoderParameters);<BR> byte[] bjpeg=msjpg.ToArray();<BR> <BR> return bjpeg;<BR> }<BR> public Stream BmpToJpegStream(byte[] bmpSrc)<BR> {<BR> MemoryStream ms=new MemoryStream(bmpSrc);<BR> MemoryStream msjpg=new MemoryStream();<BR> Bitmap myBitmap = new Bitmap(ms,false);<BR> //myBitmap.Save("c:\\temp\\"+i.ToString()+".jpg", myImageCodecInfo, myEncoderParameters);<BR> myBitmap.Save(msjpg, myImageCodecInfo, myEncoderParameters);<BR> return msjpg;<BR> }<BR> public bool BmpToJpegFile(byte[] bmpSrc,string filename)<BR> {<BR> MemoryStream ms=new MemoryStream(bmpSrc);<BR> Bitmap myBitmap=new Bitmap(ms,false);<BR> myBitmap.Save(filename,myImageCodecInfo,myEncoderParameters);<BR> return true;<BR> }<BR> public bool BmpToJpegFile1(Bitmap bmpSrc,string filename)<BR> {<BR> bmpSrc.Save(filename,myImageCodecInfo,myEncoderParameters);<BR> return true;<BR> }<BR> }<BR>//调用:<BR>Bmp2Jpeg bmp2Jpeg=new Bmp2Jpeg(50); //图片压缩率50%<BR>bmp2Jpeg.BmpToJpegFile(bmpSrc,"c:\\a.jpg");<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cer 回复日期:2002-10-18 08:13:36
<br>内容:你好,落叶夏日,谢谢你给我回信,这个我以搞清楚了,最重要的是save,另外你能看一下我的另一个问题吗?是关于扫描仪的谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -