基本上我想在沒有空間或黑色背景的情況下伸展較小的圖像(即300x300到較大的一個即500x500)。將圖像繪製成較大的位圖
我有一個位圖(比方說寬度500px,高度500px)。如何在該位圖上繪製另一個(較小)圖像,這樣就需要整個位圖?
我已經知道如何創建位圖(即)並獲取圖像 - 它可以從文件(即var image = Image.FromFile(...);
)加載或從其他來源獲得。
基本上我想在沒有空間或黑色背景的情況下伸展較小的圖像(即300x300到較大的一個即500x500)。將圖像繪製成較大的位圖
我有一個位圖(比方說寬度500px,高度500px)。如何在該位圖上繪製另一個(較小)圖像,這樣就需要整個位圖?
我已經知道如何創建位圖(即)並獲取圖像 - 它可以從文件(即var image = Image.FromFile(...);
)加載或從其他來源獲得。
請參閱Graphics.DrawImage的文檔。您可以指定源矩形和目標矩形。
示例代碼:
Image i = Image.FromFile(fileName); // This is 300x300
Bitmap b = new Bitmap(500, 500);
using(Graphics g = Graphics.FromImage(b))
{
g.DrawImage(i, 0, 0, 500, 500);
}
使用代碼確保添加引用System.Drawing中裝配並添加using System.Drawing
到文件中。
它不起作用 – yasink 2010-10-07 19:07:43
你看到爲什麼它不起作用的任何特定原因?一個錯誤?當你運行代碼時會發生什麼? – WildCrustacean 2010-10-07 19:24:45
你可以嘗試使用以下:
public Image ImageZoom(Image image, Size newSize)
{
var bitmap = new Bitmap(image, newSize.Width, newSize.Height);
using (var g = Graphics.FromImage(bitmap))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
}
return bitmap;
}
並從可用InterpolationModes的一個選擇。
好問題和很好的答案! – Bitterblue 2013-03-21 12:00:44