[Image-SIG] Workarounds for MemoryErrors
ben at ekran.org
Wed Jun 24 20:14:07 CEST 2009
Thanks all for your help.
The code generates a large image from many small ones.
So I'll just scale each image individually before collaging them.
Gregor Kopka wrote:
> to process a ~ 25GB (uncompressed image data) you are afaik out of luck
> with PIL.
> Only chance would be to use a fairly recent 64 bit OS with 64 bit python
> binaries (some custom patches /might/ be needed though) and give it a
> hefty amount of swapspace (at least eight times main memory) to fit the
> image into virtual memory, but then you would wait for the disk for
> hours (at best) or - depending on the operations you want to perform -
> way longer.
> The question of how to open the resulting image also arises...
> Since you didn't give any details on what you need as output format, or
> the operations you want to perform on the image while in memory (or
> whereever it might be at that point) it's hard to give any better clues.
> B. Bogart schrieb:
>> Hello all,
>> I want to create a very large RGBA image (96000x72000 pixels).
>> I have 4GB of RAM.
>> Is there an easy way of getting around this error by having PIL only
>> allocate one section of the image at a time?
>> If PIL does not have any internal trick to work with large images then
>> I'll have to make 4+ smaller images one at a time, but then I'm not sure
>> how I could combine them without needing to allocate a memory chunk for
>> the whole image.
>> Otherwise I suppose I'll have to try with some other language, perhaps
>> C/SDL, though a quick calculation seems to show that such a large RGBA
>> image is just unworkable. Is there some way of using disk space rather
>> than memory? Does not matter if it is slow, just that it is possible!
>> Any advice?
>> Image-SIG maillist - Image-SIG at python.org
More information about the Image-SIG