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_i mage(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))
image.save(file _name, "JPEG")
### In my tests.py ###
def testCreateSquar eImage(self):
""" Test to turn image into a square """
self.convert_fi le = '/home/bfrederi/square-dissertation.jp g'
tkl_converter.c reate_square_im age(self.conver t_file)
image = Image.open(self .convert_file)
if image.size[0] == 75 and image.size[1] == 75:
self.assert_(Tr ue)
else:
self.fail("Widt h: %s Height: %s" % (image.size[0],
image.size[1]))
### Test result ###
FAIL: Test to turn image into a square
----------------------------------------------------------------------
Traceback (most recent call last):
File "tests.py", line 462, in testCreateSquar eImage
self.fail("Widt h: %s Height: %s" % (image.size[0], image.size[1]))
AssertionError: Width: 75 Height: 97
----------------------------------------------------------------------
The image is unchanged. Anyone have any idea what I'm doing wrong?
I've tried opening the file, and outputting to a different file
(instead of overwriting the file), but the new file always comes out
the same as the original.
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_i mage(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))
image.save(file _name, "JPEG")
### In my tests.py ###
def testCreateSquar eImage(self):
""" Test to turn image into a square """
self.convert_fi le = '/home/bfrederi/square-dissertation.jp g'
tkl_converter.c reate_square_im age(self.conver t_file)
image = Image.open(self .convert_file)
if image.size[0] == 75 and image.size[1] == 75:
self.assert_(Tr ue)
else:
self.fail("Widt h: %s Height: %s" % (image.size[0],
image.size[1]))
### Test result ###
FAIL: Test to turn image into a square
----------------------------------------------------------------------
Traceback (most recent call last):
File "tests.py", line 462, in testCreateSquar eImage
self.fail("Widt h: %s Height: %s" % (image.size[0], image.size[1]))
AssertionError: Width: 75 Height: 97
----------------------------------------------------------------------
The image is unchanged. Anyone have any idea what I'm doing wrong?
I've tried opening the file, and outputting to a different file
(instead of overwriting the file), but the new file always comes out
the same as the original.
Comment