Scaling pictures

K

Kajsa Anka

I would like some advice, I'm going to build a small app that will, among
other things, scale images so that they can be published on a web site. I've
never done any image processing in python before so I would like to ask what
is the best way of doing this, I will not do anything else than scaling the
images.

I found the Python Imaging Library but before I dive into that I would like
to know if there is a better way of doing this.
 
B

buffi

Kajsa said:
I would like some advice, I'm going to build a small app that will, among
other things, scale images so that they can be published on a web site. I've
never done any image processing in python before so I would like to ask what
is the best way of doing this, I will not do anything else than scaling the
images.

I found the Python Imaging Library but before I dive into that I would like
to know if there is a better way of doing this.

I prefer using imagemagick whenever I have to do anything related to
images.
http://www.imagemagick.org/script/index.php

Resizing an image would be something like this

import os

filename = "picture.png"
outputfile = "picture_resized.png"
new_size = "100x100"
os.system("convert %s -resize %s %s" % (filename, new_size, outputfile))
 
R

Ravi Teja

Kajsa said:
I would like some advice, I'm going to build a small app that will, among
other things, scale images so that they can be published on a web site. I've
never done any image processing in python before so I would like to ask what
is the best way of doing this, I will not do anything else than scaling the
images.

I found the Python Imaging Library but before I dive into that I would like
to know if there is a better way of doing this.

Yes. Python Imaging Library (PIL) is the preferred Python way to do
this. The example is right in the documentation.
http://www.pythonware.com/library/pil/handbook/image.htm

from PIL import Image
import glob, os

size = 128, 128

for infile in glob.glob("*.jpg"):
file, ext = os.path.splitext(infile)
im = Image.open(infile)
im.thumbnail(size, Image.ANTIALIAS)
im.save(file + ".thumbnail", "JPEG")
 
B

bearophileHUGS

Kajsa Anka:
I found the Python Imaging Library but before I dive into that I would like
to know if there is a better way of doing this.

PIL is very fit for that. Note that it creates thumbnails already by
itself, you can use that for bigger images too.

Bye,
bearophile
 
C

cyberco

PIL is certainly a fine option, but I noticed that the scaled images
(scaled with the ANTIALIAS filter) are not as good as you can get with,
say, Photoshop. Maybe I'm just expecting too much, but I wish I could
choose a higher quality rescaling algorithm. PIL still rocks though.
 
C

cyberco

cyberco said:
PIL is certainly a fine option, but I noticed that the scaled images
(scaled with the ANTIALIAS filter) are not as good as you can get with,
say, Photoshop. Maybe I'm just expecting too much, but I wish I could
choose a higher quality rescaling algorithm. PIL still rocks though.

Sorry, I should have checked the facts a little better: you can set the
quality of the compression when saving:

====================================
img = Image.open('old.jpg')
img.thumbnail((640,480), Image.ANTIALIAS)
img.save('new.jpg', quality=95)
====================================

Now PIL is definitely the way to go. :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,598
Members
45,150
Latest member
MakersCBDReviews
Top