none
PictureBox 加载 13000*9000的图片。 RRS feed

  • 问题

  • 需要用PictureBox加载一个13000*9000的图片。可以按比例缩放。
    尝试使用Image类的GetThumbnailImage方法,不行!
    尝试使用g.drawimage,还是不行! 都报内存不足!
    好像Image类就不能处理高或宽超过10000的图片。
    不知道有什么别的办法没有。
    PS:其实方法不复杂,就是pictureBox.Load("aa.jpg").图片也不是很大,才4.5MB,我同样的方法加载过30MB大的图片,只不过分辨率没超过10000.
    别紧张,我不是什么好人。。。
    2009年11月6日 9:59

答案

  • 已解决!先生成缩略图,再加载。
    原来是。net的控件的长和宽不能太大。
    Image类完全可以处理高或宽超过10000的图片。只不过我的程序写的不好,内存控制不够,才会导致GetThumbnailImage方法,或者g.drawimage会报内存不足。
    谢谢大家。
    别紧张,我不是什么好人。。。
    • 已标记为答案 YiChun Chen 2009年11月9日 10:41
    2009年11月9日 4:08

全部回复

  • 你好!
         PictureBox.Width * PictureBox.Height * 4 > 512 * 1024 * 1024,就会发生这个问题!
         这是Windows本身的限制!

    周雪峰
    2009年11月6日 10:29
    版主
  • 不同系统不同限制 windows7限制是大约19000  以下版本系统是10000-13000

    2009年11月6日 10:37
  • 难道是问题太简单了···我真是想了一天了!!!
    别紧张,我不是什么好人。。。
    2009年11月6日 10:45
  • 有没有什么解决办法?客户要求把图片显示出来。。。
    别紧张,我不是什么好人。。。
    2009年11月6日 10:47
  • 这样的图片显示出来,一般的显示器也放不下,建议分割处理!
    周雪峰
    2009年11月6日 11:52
    版主
  • 怎么分割?如果要引用WINAPI或者别的函数,麻烦指点一下。如果是手动的,那是肯定不符合客户要求的。
    别紧张,我不是什么好人。。。
    2009年11月7日 2:51
  • 怎么分割?如果要引用WINAPI或者别的函数,麻烦指点一下。如果是手动的,那是肯定不符合客户要求的。
    别紧张,我不是什么好人。。。

    你自己计算一下总体多大 切分成四分绘画
    2009年11月7日 12:55
  • 已解决!先生成缩略图,再加载。
    原来是。net的控件的长和宽不能太大。
    Image类完全可以处理高或宽超过10000的图片。只不过我的程序写的不好,内存控制不够,才会导致GetThumbnailImage方法,或者g.drawimage会报内存不足。
    谢谢大家。
    别紧张,我不是什么好人。。。
    • 已标记为答案 YiChun Chen 2009年11月9日 10:41
    2009年11月9日 4:08
  • 这下出来个更大的图片 600*40000···
    GetThumbnailImage方法可以生成缩略图,但是太不清楚了,客户不满意。
    改成g.DrawImage一直报参数异常。
    请指教!!!
    别紧张,我不是什么好人。。。
    2009年11月20日 5:25