[Image-SIG] Memory Error
fredrik at pythonware.com
Mon Feb 4 18:00:47 CET 2008
Dennis Kepler wrote:
> I seem to be having a memory problem, except all I'm doing is applying a
> contrast enhancement to a .tiff or .jpg. I get this error: *return
> im1._new(core.blend(im1.im, im2.im, alpha)) MemoryError*
> The JPEG is about 45mb.
> The TIFF is about 600mb.
> My code looks like this:
> import sys, os
> import glob, time
> import Image, ImageDraw, ImageFont
> import ImageEnhance
> #set image list by a glob search
> img_list = glob.glob('*.jpg')
> # Start the loop of the images to be resized
> for img in img_list:
> name = img
> im = Image.open(img)
> enh = ImageEnhance.Contrast(im)
> enh.enhance(1.3).show("30% more contrast")
> #Save full resolution jpeg
> im.save('D:/ortho/jpg_outputs/cem/test/output/' + name[0:8] +
> except IOError:
> print "cannot export", name
> Any ideas?
use the windows task manager to check how quickly memory grows; do you
run out of memory after one images, five, ten? how much memory does
each loop need?
also, note that ImageEnhance isn't a very memory efficient way to
process large images; the constructor makes *two* copies of the source
image, and the enhance method generates a third one. try using the
"point" method instead.
More information about the Image-SIG