扩展具有透明部分的图像

Extend an image with transparent portion

我正在制作照片编辑器并在 pictureBox 中显示图像,我在不影响边长比的情况下调整图像大小以适应 pictureBox。

例如,如果 pictureBox 的大小为 (400x400) 而图像的大小为 (800x600),我将以编程方式将其调整为 (400x300)。

问题是我希望这张图片的大小为 (400x400) 以覆盖整个 pictureBox 为此我想在我的图片中添加透明部分以使其从 (400x300) 到 (400x400)

我在 pictureBox 上的图片快照

上图中我的蓝色是我的图片,其他部分是剩下的图片框。

我再次希望图像的大小(蓝色的)等于图片框的大小并且图片框的剩余部分被图片的透明部分覆盖

注意:我不想拉伸我的图像而是添加透明部分

谢谢,

最直接的方法是创建更大的位图,然后DrawImage将图片放入其中。

Bitmap original = (Bitmap) Bitmap.FromFile(someFileName);
Size sz = yourPictureBox.ClientSize;
Bitmap bmp = new Bitmap(sz.Width, sz.Height); 
using (Graphics G = Graphics.FromImage(bmp))
    G.DrawImage(original, 0, 0);
yourPictureBox.Image = bmp;