首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

gdi+中发生一般性异常。

2012-09-03 
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);
探讨

Bitmap bmp = new Bitmap("D:\\aaa.jpg");
this.panel1.BackgroundImage = (Image)bmp

实际上,只要这2句就够了。

[解决办法]
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);

热点排行