我正在使用Microsoft Visual Basic 2010 Express,我遇到了透明图像和图片框的问题。当我将大小模式设置为StretchImage时,它似乎在我的图像周围添加了白色边框。如果我将其设置为“正常”,则会正确显示,不会添加边框。
在这张图片中,您可以看到我在说什么。左侧是它看起来的样子。右侧是我调整图片框大小时会发生的事情。
这是我正在使用的图像
对于我的程序,我需要根据用户输入的大小来缩放这些图像。输入大小永远不会超过100x100px。图像是透明的.gif,160x160px并存储在程序资源中。这些图像仅显示在屏幕上,不会被程序输出。我想知道是否有任何方式来缩放透明图像而不会在它们周围形成白色边框。
答案 0 :(得分:1)
尝试手动绘制图像并设置interpolation mode。您可能需要使用不同的值来获得所需的外观:
Dim destination = New Bitmap(100, 100)
Dim original = Image.FromFile("gear-256.gif")
Using g = Graphics.FromImage(destination)
g.InterpolationMode = InterpolationMode.HighQualityBilinear
g.DrawImage(original, New Rectangle(0, 0, destination.Width, destination.Height), New Rectangle(0, 0, original.Width, original.Height), GraphicsUnit.Pixel)
End Using
PictureBox1.Image = destination