2
在我的计划,我压缩BMP成JPEG这样的:JPEG压缩C#
private void ConvertBmpToStreamJPG30(Bitmap b, Stream s)
{
s.Flush();
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 30L);
b.Save(s, GetEncoder(ImageFormat.Jpeg), encoderParameters);
}
然后一个功能是接收JPEG在一个MemoryStream,我将其转化为一个位图做
Bitmap b = new Bitmap(stream);
当我显示图像,有很多行是这样的:
我做错了什么,人?
编辑1 这里显示的问题小的Visual Studio解决方案:http://www.fast-files.com/getfile.aspx?file=79311
这是一个屏幕共享软件的开端。它的作用是:截取屏幕截图,比较它们,压缩差异并将其发送到解压缩它的程序的另一部分,并重新构造包含收到的所有内容的图像。它会打开一个窗口,显示左侧的“发送”和右侧的重新组合图像。
看起来像损坏的数据流 - 请问JPEG在其他应用程序正常打开? – 2014-09-22 13:54:21
你能制作一个简短但完整的程序来证明问题吗?如果你将流保存到磁盘,你能用explorer等打开它吗? – 2014-09-22 13:54:36
Save()之前为什么刷新()? s的位置在流的开始处吗? – 2014-09-22 13:55:29