我正在做一个绘图应用程序。我已将颜色填充图像保存为集合中的bitmapImage。我再次打开保存的图像进行绘图。如果我填充图像的颜色,颜色填充不清楚。我使用ExtensionJpg来保存图像。
WriteableBitmap pBitmap;
pBitmap = new WriteableBitmap(imgDraw, null); // imgDraw is jpg image bitmapImage binded to source.
BitmapImage img1 = new BitmapImage();
MemoryStream ms = new MemoryStream();
pBitmap.SaveJpeg(ms, (int)pBitmap.PixelWidth, (int)pBitmap.PixelHeight, 0, 100);
img1.SetSource(ms);
在这种情况下,我再次将此位图图像绑定到imgDraw Source。但是看到的图像非常清晰。 当我填充颜色时,imgDraw未正确应用。
由于
答案 0 :(得分:2)
将位图编码为Jpeg文件时,可能会丢失数据。这是lossy compression algorithms设计的一部分,例如Jpeg。
更糟糕的是,使用有损压缩可能会引入(几乎不可见)伪像。因此,通过将图像保存为Jpeg,您可能会在大而清晰的区域中添加像素。这些像素导致填充失败。
您有三种选择:
我注意到您将质量设置为100但是您可能使用的方法的this question makes me doubt the quality of the jpeg implementation。您可以切换到PNG以查看是否有帮助。