merge two png pic
__peter__ at web.de
Fri Jul 31 08:52:01 CEST 2009
> On Jul 29, 9:20 am, cocobear <cocobear... at gmail.com> wrote:
>> Thistwopngfile has their own palette
>> >>> im1.mode
>> >>> im.mode
>> >>> im.getpalette == im1.getpalette
>> I can use this code tomergetwopngpictogether:
>> Map = Image.new("RGB", (x,y))
>> Map.paste(im, box)
>> Map = Map.convert("L", optimize=True, palette=Image.ADAPTIVE)
>> But if thetwopngpicis too big , or if I have tomergemorepic
>> together, I will get MemoryError:
>> >>> Image.new("RGB",(44544,38656))
As a workaround you could split the image into tiles that fit into your
machine's RAM. Or you could try to do the rendering on a 64-bit system.
You'll need at least
5 gigabytes for the target image plus memory for the biggest source image.
Alternatively there are probably tools that can keep parts of the image on
disk (imagemagick, maybe? you'll have to check yourself or ask in a
specialized forum). As a last resort you should be able to write such a tool
yourself. I don't know how hard it would be to generate the PNG, but the RGB
pasting should be trivial.
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "/usr/lib/python2.5/site-packages/PIL/Image.py", line 1710, in
>> return Image()._new(core.fill(mode, size, color))
>> How can I directlymergetwopicto a ‘P' modepngwith palette.
> Nobody replied.
What do you want to do with such a big image? You will run into the same
limitation when you are trying to display it.
More information about the Python-list