<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<span class="p"></span>
<div class="frame">I have a small routine which tries to verify if an
uploaded file is a valid image. It works like this:<br>
<br>
<pre>        image_data=StringIO(data)
        try:
            pil_data=PIL.Image.open(image_data)
        except IOError: # PIL abuses IOError to report parsing errors
            raise Invalid(self.message("bad_image", state),
                    value, state)

        pil_data.load()
        (width,height)=pil_data.size
</pre>
<br>
For some images I get an OverflowError on the load() call:<br>
<pre>Module <span class="module"
 title="/srv/2style4you/buildout/eggs/PIL-1.1.6-py2.5-linux-i686.egg/PIL/ImageFile.py">PIL.ImageFile</span>:<b>155</b> in <code>load</code>
<a onclick="return switch_source(this, 'short')" class="switch_source"
 href="imap://wichert%40simplon%2Ebiz@mx1.simplon.biz:993/fetch%3EUID%3E.2style4you.Site%20Errors%3E331#">&gt;&gt;&nbsp; </a><span
 class="bp">self</span><span class="o">.</span><span class="n">load_prepare</span><span
 class="p">()</span>
Module <span class="module"
 title="/srv/2style4you/buildout/eggs/PIL-1.1.6-py2.5-linux-i686.egg/PIL/ImageFile.py">PIL.ImageFile</span>:<b>223</b> in <code>load_prepare</code>
<a onclick="return switch_source(this, 'short')" class="switch_source"
 href="imap://wichert%40simplon%2Ebiz@mx1.simplon.biz:993/fetch%3EUID%3E.2style4you.Site%20Errors%3E331#">&gt;&gt;&nbsp; </a><span
 class="bp">self</span><span class="o">.</span><span class="n">im</span> <span
 class="o">=</span> <span class="n">Image</span><span class="o">.</span><span
 class="n">core</span><span class="o">.</span><span class="n">new</span><span
 class="p">(</span><span class="bp">self</span><span class="o">.</span><span
 class="n">mode</span><span class="p">,</span> <span class="bp">self</span><span
 class="o">.</span><span class="n">size</span><span class="p">)</span><b>
OverflowError: long int too large to convert to int
</b></pre>
I can not find any information as to what the problem might be. It
seems to only occur for bmp files; jpeg and png appear to work
correctly.<br>
<br>
This is using PIL 1.1.6 and Python 2.5 on a Linux system.<br>
<br>
Wichert.<br>
<div style="display: none;" class="source highlight" source-type="long"><a
 class="switch_source" onclick="return switch_source(this, 'long')"
 href="imap://wichert%40simplon%2Ebiz@mx1.simplon.biz:993/fetch%3EUID%3E.2style4you.Site%20Errors%3E331#">&lt;&lt;&nbsp;
</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bp">self</span><span class="o">.</span><span
 class="n">map</span> <span class="o">=</span> <span class="bp">None</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<span class="source-highlight">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bp">self</span><span
 class="o">.</span><span class="n">load_prepare</span><span class="p">()</span></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="c"># look for read/seek overrides</span></div>
</div>
<div class="frame">
<div style="display: none;" class="source highlight" source-type="long"><a
 class="switch_source" onclick="return switch_source(this, 'long')"
 href="imap://wichert%40simplon%2Ebiz@mx1.simplon.biz:993/fetch%3EUID%3E.2style4you.Site%20Errors%3E331#">&lt;&lt;&nbsp;
</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="k">if</span> <span class="ow">not</span> <span
 class="bp">self</span><span class="o">.</span><span class="n">im</span>
<span class="ow">or</span>\<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bp">self</span><span class="o">.</span><span
 class="n">im</span><span class="o">.</span><span class="n">mode</span>
<span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span
 class="n">mode</span> <span class="ow">or</span> <span class="bp">self</span><span
 class="o">.</span><span class="n">im</span><span class="o">.</span><span
 class="n">size</span> <span class="o">!=</span> <span class="bp">self</span><span
 class="o">.</span><span class="n">size</span><span class="p">:</span><br>
<span class="source-highlight">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="bp">self</span><span
 class="o">.</span><span class="n">im</span> <span class="o">=</span> <span
 class="n">Image</span><span class="o">.</span><span class="n">core</span><span
 class="o">.</span><span class="n">new</span><span class="p">(</span><span
 class="bp">self</span><span class="o">.</span><span class="n">mode</span><span
 class="p">,</span> <span class="bp">self</span><span class="o">.</span><span
 class="n">size</span><span class="p">)</span></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="c"># create palette (optional)</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="k">if</span> <span class="bp">self</span><span
 class="o">.</span><span class="n">mode</span> <span class="o">==</span>
<span class="s">"P"</span><span class="p">:</span></div>
</div>
</body>
</html>