【问题标题】:C# bitmap.save loses some pixelsC# bitmap.save 丢失了一些像素
【发布时间】:2014-03-09 12:45:48
【问题描述】:

我编写了一个代码来为我的位图图像像素着色

int[,] unClusteredImage = new int[367,158];
Bitmap clusteredImage = new Bitmap(367, 158);
for (int row = 0; row < unClusteredImage.GetLength(0); row++)
                        for (int col = 0; col < unClusteredImage.GetLength(1); col++)
                            if (unClusteredImage[row, col] == 0)
                                clusteredImage.SetPixel(row, col, Color.Red);
                            else if (unClusteredImage[row, col] == 1)
                                clusteredImage.SetPixel(row, col, Color.Blue);
                            else if (unClusteredImage[row, col] == 2)
                                clusteredImage.SetPixel(row, col, Color.Green);
                            else if (unClusteredImage[row, col] == 3)
                                clusteredImage.SetPixel(row, col, Color.Yellow);
                            else if (unClusteredImage[row, col] == 4)
                                clusteredImage.SetPixel(row, col, Color.Black);
                            else if (unClusteredImage[row, col] == 5)
                                clusteredImage.SetPixel(row, col, Color.Orange);
                            else if (unClusteredImage[row, col] == 6)
                                clusteredImage.SetPixel(row, col, Color.Lime);
                            else if (unClusteredImage[row, col] == 7)
                                clusteredImage.SetPixel(row, col, Color.Purple);
clusteredImage.Save("test.jpeg");

问题是当我使用 bitmap.save 方法保存位图时,当我在绘画中打开它时会丢失一些像素,我注意到图像底部没有一些像素

【问题讨论】:

  • 丢失了哪些像素?您是否尝试过联系当地的 Pixel 当局并成立了搜索小组?
  • 您不会失去任何东西。整个图像始终为红色,因为unClusteredImage[row, col] == 0 始终为零。您的行和列也颠倒了(至少按名称)。
  • no 整个图像不是红色的。但是当我使用绘画打开图像时,我注意到最后几行缺少黑色。
  • 在保存图像之前,您应该先绘制它以查看您的代码是否正常。如果绘图产生所需的图像,那么保存就是问题

标签: c# bitmap jpeg pixels loss


【解决方案1】:

您将图像保存为 JPEG。

JPG 格式是一种有损压缩文件格式。这对于以比 BMP 更小的尺寸存储照片非常有用。

PNG 格式是一种无损压缩文件格式,使其成为应用程序中使用的常见选择。

我建议您尝试将其保存为 PNG 格式,并检查结果。如果您不关心大小,您可以随时将其保存为位图。

clusteredImage.save("test.png", ImageFormat.Png);

【讨论】:

  • 我测试了你的代码,它不起作用。同样的问题。我也试过位图(bmp)也不好用。由于声誉不够,我无法上传图片进行更多说明。
  • 它解决了我的问题...非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 2018-12-23
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多