2011-07-11 71 views
1

是否有人知道如何從高度較高的現有圖像創建新位圖,但不縮放圖像,只有透明,黑色或白色原始圖像在新的位圖中?從現有圖像創建新位圖時不縮放圖像

我基本上有一張比第二張更高的照片,我需要第二張和第一張一樣高,而沒有拉長它。

  img2 = new Bitmap(lImages[2],new Size(pictureBox.Image.Width,pictureBox.Image.Height)); 
      img2 = ((Bitmap)img2).Clone(new Rectangle(0, 0, pictureBox.Image.Width, pictureBox.Image.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); 

C#.NET 4.0。

回答

3

通過使用Graphics對象,你可以很容易地做到這一點:

Bitmap temp = new Bitmap(new Size(pictureBox.Image.Width,pictureBox.Image.Height)); 
using(Graphics g = Graphics.FromImage(temp)) 
{ 
    g.DrawImage(img2, 0, 0); 
} 
img2 = temp; 

現在img2引用其中有畫着原始(未拉伸)圖像所需大小的新Bitmap對象。

注意:要控制額外空間的顏色,請在繪製圖像之前添加對g.FillRect的調用。

0

創建您的「標準」大小的位圖,並填充它,比如說,白色,並調用Bitmap.MakeTransparent(Color.White)並在其上繪製最終圖像。

+0

對不起,從手機寫入,所以沒有代碼風格aplied。 – Tigran