我正在编写一些代码来生成图像 - 基本上我有一个很大的源图像并包含透明区域。
我使用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在设置为“最佳质量”时所做的那样
答案 0 :(得分:2)
在新位图上绘制图像,而不是从图像中创建新的位图。
仅通过指定大小来创建空位图,然后使用Graphics.FromImage
方法为位图创建Graphics
对象。使用DrawImage
方法将图像绘制到新位图上。
Interpolationmode
对象中有PixelOffsetMode
和Graphics
等属性,可用于控制图像的缩放和绘制方式。