System.Drawing.GDIPlus.CheckStatus System.Drawing.Image.FromFile System.ArgumentException [GDI + status:InvalidParameter]

时间:2015-09-12 13:23:21

标签: .net mono raspberry-pi2

实际上是在Raspberry PI 2上。  $ uname -a Linux raspberrypi 3.18.7-v7 +#755 SMP PREEMPT 2月12日星期二17:20:48 GMT 2015 armv7l GNU / Linux

$ mono --version Mono JIT编译器版本3.2.8(Debian 3.2.8 + dfsg-4 + rpi1)

getImageFromFile=images/complex/complex C3.jpg
loadOverlayImages plant life loadImages
getImageFromFile=images/butterfly/animated-butterfly-image-0004.gif
fn=images/butterfly/animated-butterfly-image-0004.gif  targetDir=images/butterfly  PlantImage.GetFrameCount=5 for file:images/butterfly/animated-butterfly-image-0004.gif
getImageFromFile=images/butterfly/animated-butterfly-image-0005.gif
ERROR: getImageFromFile- System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0
  at System.Drawing.Image.FromFile (System.String filename, Boolean useEmbeddedColorManagement) [0x00000] in <filename unknown>:0
  at System.Drawing.Image.FromFile (System.String filename) [0x00000] in <filename unknown>:0
  at PlantLifeAnimationForm.PlantLifeImagesService.getImageFromFile (System.String filePath) [0x00015] in     /home/pi/emgucv/PlantLifeAnimation/PlantLifeAnimationForm/model/PlantLifeImagesService.cs:223
fn=images/butterfly/animated-butterfly-image-0005.gif  targetDir=images/butterfly
Unhandled Exception:

enter image description here

此文件在Windows上正常工作(DIES HERE: System.Drawing.Image.FromFile(filePath)

            using (Bitmap temp = (Bitmap)System.Drawing.Image.FromFile(filePath))
            {
                bitmapSource = (Bitmap)temp.Clone();
            }

1 个答案:

答案 0 :(得分:4)

查看此单声道错误 - https://bugzilla.novell.com/show_bug.cgi?id=510805。 基本上他们说的是像你这样的问题,当libgif无法处理提供的gif时。例如,对于您的图像,gifinfo(它是libgif-tools包的一部分)说:

  

图片8不限于屏幕尺寸,已中止。

我还必须警告你,如果你对单声道进行任何严肃的图像处理 - 避免使用标准的Bitmap和相关的类,它们在很多方面都是错误的(根据我自己的新体验)。对于大多数图像处理,我直接使用MagickWand C api(通过p调用)。