GDI+加载索引像素格式的大图片异常,大侠进

蓬莱东路走九遭 2014-01-13 02:12:52
近期的一个B/S项目中有用到GDI+图片处理,当GDI+加载索引像素的图片时,需要先将Image对象转换为Bitmap对象供GDI+调用,在加载尺寸为1024*31500以内的大图片时,均正常,但当图片尺寸在1024*33000以上时,GDI+代码“g.DrawImage(bmp, 0, 0)”异常提示“参数无效”,今天单独写Winform进行测试,也是同样的情况,求大神指导(具体需求是:在这张大图上画一个矩形,并生成一个以矩形位置为基点1024*1024的小图片,相关代码都已完成,前天出现上述问题)

GDI+代码:
private void Form1_Load(object sender, EventArgs e)
{
//原图为索引像素格式,在使用Graphics时需要先用bmp转换
Image img = Image.FromFile(@"D:\测试数据文件夹\20130405\092229\1_1正常.jpg");
MessageBox.Show(img.Width + "," + img.Height);
Bitmap bmp = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);

//g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

//1024*31504正常 1024*34400异常
g.DrawImage(bmp, 0, 0);

g.Dispose();
bmp.Dispose();
img.Dispose();
}


测试图片下载地址(一张正常的,一张异常的):http://pan.baidu.com/s/1sjq9UVz
http://pan.baidu.com/s/1gd0xHdT
...全文
262 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayexing 2016-05-27
  • 打赏
  • 举报
回复
兄弟,你是怎么解决的,能提供一下方案思路吗。
  • 打赏
  • 举报
回复
GDI+解决了,结贴
  • 打赏
  • 举报
回复
引用 3 楼 laviewpbt 的回复:
GDI+基本苍白。
opencv不知道能否实现 我现在想测试下能否把这张图的一部分加载到GDI+,如果能,那这个问题也基本差不多能够解决
laviewpbt 2014-01-13
  • 打赏
  • 举报
回复
GDI+基本苍白。
  • 打赏
  • 举报
回复
引用 1 楼 laviewpbt 的回复:
这东西就是因为图大了,没啥好说的,GDI+或者说windows系统就无法直接支持这么大的图。 或更大的内存或者更高位的系统可以解决。
这么说,程序代码已经无能为力了吗?
laviewpbt 2014-01-13
  • 打赏
  • 举报
回复
这东西就是因为图大了,没啥好说的,GDI+或者说windows系统就无法直接支持这么大的图。 或更大的内存或者更高位的系统可以解决。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧