我正在尝试调整图像大小以适合PictureBox的大小,但无法正常工作。
我添加了一种方法resizeImage
,但是无论我给出的大小如何,结果都是相同的。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Bitmap myBitmap = CreateNonIndexedImage(new Bitmap(@"d:\drawplane1.jpg"));
resizeImage(myBitmap, new Size(1, 1));
// Draw myBitmap to the screen.
e.Graphics.DrawImage(myBitmap, 0, 0, myBitmap.Width,
myBitmap.Height);
// Set each pixel in myBitmap to black.
for (int Xcount = 0; Xcount < myBitmap.Width; Xcount++)
{
for (int Ycount = 0; Ycount < myBitmap.Height; Ycount++)
{
myBitmap.SetPixel(Xcount, Ycount, Color.Black);
}
}
// Draw myBitmap to the screen again.
e.Graphics.DrawImage(myBitmap, myBitmap.Width, 0,
myBitmap.Width, myBitmap.Height);
}
public Bitmap CreateNonIndexedImage(Image src)
{
Bitmap newBmp = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
using (Graphics gfx = Graphics.FromImage(newBmp))
{
gfx.DrawImage(src, 0, 0);
}
return newBmp;
}
public static Image resizeImage(Image imgToResize, Size size)
{
return (Image)(new Bitmap(imgToResize, size));
}
}
我没有在行中放入多少大小
resizeImage(myBitmap, new Size(1, 1));
.. pictureBox中的图像太大:
我尝试10,10
,然后尝试1,1
进行测试,但它没有改变图像大小。
这是原始图片:
原始图像文件:https://imgur.com/a/umegyk1
答案 0 :(得分:2)
尝试将SizeMode
中的PictureBox
设置为PictureSizeMode.Zoom
或PictureSizeMode.StretchImage
,看看是否有帮助。通过属性编辑器或代码。
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
答案 1 :(得分:2)
答案 2 :(得分:1)
您的代码有两个问题:
SizeMode
属性Paint
事件中绘制图像,而不仅仅是设置Image
属性如果您想在Paint
中绘制图像(例如,因为它是动画,其帧快速生成),则不需要PictureBox
,简单的{{1 }}也会这样做。
但是,如果仅生成一次图像,则只需将其分配给Panel
属性,设置Image
进行缩放,SizeMode
会关注其余部分