在第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