gdi+中发生一般性错误。。。。也许看到这个题目很多人要喷我了。。我也找了很多资料。C# code//创建一个bitmap类
gdi+中发生一般性错误。。。。
也许看到这个题目很多人要喷我了。。
我也找了很多资料。
C# code//创建一个bitmap类型的bmp变量来读取文件。 Bitmap bmp = new Bitmap(fileNameExt); //新建第二个bitmap类型的bmp2变量 Bitmap bmp2 = new Bitmap(800, 500, System.Drawing.Imaging.PixelFormat.Format16bppRgb555); //将第一个bmp拷贝到bmp2中 Graphics draw = Graphics.FromImage(bmp2); draw.DrawImage(bmp, 0, 0); filePanel.BackgroundImage = (Image)bmp2;//读取bmp2到picturebox //string file = openFileDialog1.FileName; openFileDialog1.Dispose(); draw.Dispose(); bmp.Dispose();//释放bmp文件资源
这是我找到并修改了的,由于我的panel大小是800,500的,设置完之后,添加图片都是正常的,但是打开图片的时候,图片不再是正好填充在panel里了。。filePanel.BackgroundImageLayout = ImageLayout.Stretch;我已经写了这句。
我在想是不是像素的问题??
有没有大神可以给点提示。。????
现在我的程序已经不报GDI+的错误了,就是图片打开有问题。。。
[解决办法]//新建第二个bitmap类型的bmp2变量
Bitmap bmp2 = new Bitmap(800, 500,
你把这句800,500,直接换成panel的宽和高
[解决办法] Bitmap bmp = new Bitmap("D:\\aaa.jpg");
//新建第二个bitmap类型的bmp2变量
Bitmap bmp2 = new Bitmap(bmp.Width, bmp.Height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, 0, 0);
this.panel1.BackgroundImage = (Image)bmp2;//读取bmp2到picturebox
panel1.BorderStyle = BorderStyle.Fixed3D;
//string file = openFileDialog1.FileName;
draw.Dispose();
bmp.Dispose();//释放bmp文件资源
[解决办法] Bitmap bmp = new Bitmap("D:\\aaa.jpg");
this.panel1.BackgroundImage = (Image)bmp
实际上,只要这2句就够了。
[解决办法]每错,再加上filePanel.BackgroundImageLayout = ImageLayout.Stretch就能铺满了。
如果一定要按你的思路来,就改一句
draw.DrawImage(bmp, new Rectangle(Point.Empty, bmp2.Size), new Rectangle(Point.Empty, bmp.Size), GraphicsUnit.Pixel);
[解决办法]panel1 的属性里面看有没有设置背景图片的模式,改为自动调整
[解决办法]去掉后面的16位色深参数,默认32位
Bitmap bmp2 = new Bitmap(800, 500)
draw.DrawImage(bmp, 0, 0);
改成
draw.DrawImage(bmp,New rectangle(0,0,800,500),new rectangle(0,0,bmp.width,bmp.height);