PIL problem
bfrederi
brfredericks at gmail.com
Wed Oct 8 11:58:07 EDT 2008
On Oct 8, 10:39 am, bfrederi <brfrederi... at gmail.com> wrote:
> On Oct 8, 10:30 am, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
>
>
>
> > On Wed, 08 Oct 2008 08:10:02 -0700, bfrederi wrote:
> > > I am having a problem using PIL. I am trying to crop and image to a
> > > square, starting from the center of the image, but when I try to crop
> > > the image, it won't crop. Here are the relevant code snippets:
>
> > > ### Function I am testing ###
> > > def create_square_image(file_name):
> > > """ Creates a thumbnail sized image and turns it into a square """
> > > image = Image.open(open(file_name))
>
> > > size_tuple = image.size
> > > width = size_tuple[0]
> > > height = size_tuple[1]
>
> > > square_length = 75
>
> > > x1 = (width / 2) - (square_length / 2) x2 = x1 + square_length
> > > y1 = (height / 2) - (square_length / 2) y2 = y1 + square_length
>
> > > image.crop((x1,y1,x2,y2))
>
> > This doesn't change `image` but creates and returns a new cropped image
> > which you simply ignore.
>
> > > image.save(file_name, "JPEG")
>
> > Ciao,
> > Marc 'BlackJack' Rintsch
>
> How do I output it to an actual file then? Or overwrite the existing
> file?
Nevermind, I gotcha. I needed to do this:
def create_square_image(file_name):
""" Creates a thumbnail sized image and turns it into a square """
image = Image.open(open(file_name))
size_tuple = image.size
width = size_tuple[0]
height = size_tuple[1]
square_length = 75
x1 = (width / 2) - (square_length / 2)
x2 = x1 + square_length
y1 = (height / 2) - (square_length / 2)
y2 = y1 + square_length
new_image = image.crop((x1,y1,x2,y2))
try:
new_image.save(file_name, "JPEG")
except IOError:
print "Cannot create square image for", file_name
I needed to output the cropped image by getting the cropped image in
"new_image" and outputting the new file. I see what you were saying.
More information about the Python-list
mailing list