在第8行,您将bmp
划到bmp2
。你之后做的任何事情都会影响bmp2
。
在第9行,您创建了一个新的位图和分配gfx
位图,这意味着你会画到bmp
与gfx
(你没有反正)。然后,您继续保存bmp
,它为您提供了一个空的或者如您所描述的“透明”图像。
如果你想你的形象的规模扩大一倍,你可能会考虑修改你的代码这种东西:
Private Sub DrawNewImage()
Dim bmp = New Bitmap("C:\Path\to\file.bmp")
Dim Width = bmp.Width
Dim Height = bmp.Height
Dim w2 As Integer = PowerOf2(Width)
Dim h2 As Integer = PowerOf2(Height)
Dim bmp2 = New Bitmap(w2, h2)
Dim gfx = Graphics.FromImage(bmp2)
gfx.DrawImage(bmp, 0, 0, w2, h2)
bmp2.Save("C:\Path\to\saved\file.bmp")
End Sub
Private Function PowerOf2(ByVal value As Integer) As Integer
Return value * value
End Function
,或者你可以尝试转换后的C#版本:
private void DrawNewImage()
{
Bitmap bmp = new Bitmap("C:\\Path\\to\\file.bmp");
int Width = bmp.Width;
int Height = bmp.Height;
int w2 = PowerOf2(Width);
int h2 = PowerOf2(Height);
Bitmap bmp2 = new Bitmap(w2, h2);
Graphics gfx = Graphics.FromImage(bmp2);
gfx.DrawImage(bmp, 0, 0, w2, h2);
bmp2.Save("C:\\Path\\to\\saved\\file.bmp");
}
private int PowerOf2(int value)
{
return value * value;
}
您可以详细了解透明度吗? – 2010-10-29 15:31:07