1

我正在编写一些代码来生成图像 - 本质上我有一个很大的源图像并且包括透明区域。

我使用 GDI+ 打开该图像并添加其他对象。

我接下来要做的是将这个新图像保存得更小,所以我使用了 Bitmap 构造函数,它接受一个源 Image 对象以及一个高度和宽度,然后保存它。

我原以为 alpha 通道会像颜色通道一样平滑,但这并没有发生——它确实产生了几个半透明的像素,但总的来说它是非常块状的。是什么赋予了?

Using img As New Bitmap("source100x100.png")
 ''// Drawing stuff
 Using simg As New Bitmap(img, 20, 20)
  simg.Save("target20x20.png")
 End Using
End Using

编辑:我认为我想要的是 SuperSampling,就像 Paint.NET 在设置为“最佳质量”时所做的那样

4

1 回答 1

2

在新位图上绘制图像,而不是从图像创建新位图。

只需指定大小即可创建一个空位图,然后使用该方法为该位图Graphics.FromImage创建一个对象。Graphics使用DrawImage方法将图像绘制到新位图上。

对象中有Interpolationmode和之类PixelOffsetModeGraphics属性,您可以使用它们来控制图像的缩放和绘制方式。

于 2009-03-10T18:43:01.580 回答