[Image-SIG] What is the best way to anti-alias a very large resolution image in PIL

Chris Mitchell chris.mit7 at gmail.com
Tue Sep 13 16:15:22 CEST 2011


You can load parts of the image, resize+anti-alias those segments then
reconstruct the entire image.  You'll have some border effects which you can
compensate for by using overlapping boundaries and excluding those
boundaries in the reconstruction.  Some untested code that is a rough
approximation:
downSample=float(7874/23622)
resizeRatio = downSample*3937
#using 3937x3937 for 36 squares
img = Image.open(file)
newImg = Image.new(mode, (7874,7874), color)
for i in xrange(0,23622,3937):
 for j in xrange(0,23622,3937):
  imgb = img.crop(i,j,i+3937,i+3937)
  imgb.resize((resizeRatio,resizeRatio), Image.ANTIALIAS)
  imgbData = imgb.getdata()
  newImg.putdata(imgbData,1.0, i)

You can shift this and repeat it if you get lines where the squares meet

On Thu, Sep 8, 2011 at 7:07 AM, Craig Coleman (C) <
Craig.Coleman at ordnancesurvey.co.uk> wrote:

> **
>
> Hi,
>
> I have a really thorny problem.
>
> I need to downsample a raster map that is 23622x23622 pixels to 7874x7874
> pixels using the ANTIALIAS filter.
>
> I have the following Python code:
>
> >>> import Image
> >>> img = Image.open(r"C:\temp\24bit_nd.tif")
> >>> nimg = img.resize((7874,7874),Image.ANTIALIAS)
>
> As soon as the resize method is called, python crashes instantly.  I
> presume this is a memory allocation issue.
>
> Is there another way of performing anti-aliasing on such a large image (its
> 2.7GB uncompressed although I'm using LZW for storage).
>
> I have tried converting the file to 8bit with a palette and this
> successfully downsamples but the ANTIALIAS is not performed.  What am I
> doing wrong?
>
> *Craig Coleman*
> *Technical Lead
> Information Systems, Ordnance Survey
> L0F2, Adanac Drive, SOUTHAMPTON, United Kingdom, SO16 0AS
> Phone: +44 (0) 2380 054641
> **www.ordnancesurvey.co.uk* <http://www.ordnancesurvey.co.uk/>* |
> craig.coleman at ordnancesurvey.co.uk*
> *Please consider your environmental responsibility before printing this
> email.*
>
> This email is only intended for the person to whom it is addressed and may contain confidential information. If you have received this email in error, please notify the sender and delete this email which must not be copied, distributed or disclosed to any other person.
>
> Unless stated otherwise, the contents of this email are personal to the writer and do not represent the official view of Ordnance Survey. Nor can any contract be formed on Ordnance Survey's behalf via email. We reserve the right to monitor emails and attachments without prior notice.
>
> Thank you for your cooperation.
>
> Ordnance Survey
> Adanac Drive
> Southampton SO16 0AS
> Tel: 08456 050505http://www.ordnancesurvey.co.uk
>
>
> _______________________________________________
> Image-SIG maillist  -  Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/image-sig/attachments/20110913/9de201e8/attachment-0001.html>


More information about the Image-SIG mailing list