绘图应用程序 - 在Windows Phone7中保存为BitmapImage的填充颜色

时间:2012-01-31 04:42:04

标签: windows-phone-7

我正在做一个绘图应用程序。我已将颜色填充图像保存为集合中的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未正确应用。

由于

1 个答案:

答案 0 :(得分:2)

将位图编码为Jpeg文件时,可能会丢失数据。这是lossy compression algorithms设计的一部分,例如Jpeg。

更糟糕的是,使用有损压缩可能会引入(几乎不可见)伪像。因此,通过将图像保存为Jpeg,您可能会在大而清晰的区域中添加像素。这些像素导致填充失败。

您有三种选择:

  1. 切换到例如,不要使用有损算法PNG
  2. 更改压缩质量
  3. 更改填充算法以更加容忍几乎相同颜色的像素。
  4. 我注意到您将质量设置为100但是您可能使用的方法的this question makes me doubt the quality of the jpeg implementation。您可以切换到PNG以查看是否有帮助。