8000 upscale=False and crop playing tricks, thanks Eugene Rwagasore · pygeek/django-thumbnail@7e07a16 · GitHub
[go: up one dir, main page]

8000
Skip to content

Commit 7e07a16

Browse files
author
Mikko Hellsing
committed
upscale=False and crop playing tricks, thanks Eugene Rwagasore
1 parent f868cb3 commit 7e07a16

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

sorl/thumbnail/engines/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def crop(self, image, geometry, options):
5757
if not crop or crop == 'noop':
5858
return image
5959
x_image, y_image = self.get_image_size(image)
60+
if geometry[0] > x_image or geometry[1] > y_image:
61+
return image
6062
x_offset, y_offset = parse_crop(crop, (x_image, y_image), geometry)
6163
return self._crop(image, geometry[0], geometry[1], x_offset, y_offset)
6264

sorl/thumbnail/engines/convert_engine.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ def is_valid_image(self, raw_data):
8585
return retcode == 0
8686

8787
def _orientation(self, image):
88+
return image
89+
# XXX need to get the dimensions right after a transpose.
8890
if settings.THUMBNAIL_CONVERT.endswith('gm convert'):
8991
args = settings.THUMBNAIL_IDENTIFY.split()
9092
args.extend([ '-format', '%[exif:orientation]', image['source'] ])

tests/thumbnail_tests/tests.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ def setUp(self):
105105
dims = [
106106
(500, 500),
107107
(100, 100),
108+
(200, 100),
108109
]
109110
for dim in dims:
110111
name = '%sx%s.jpg' % dim
@@ -136,6 +137,15 @@ def testUpscale(self):
136137
self.assertEqual(t.x, 300)
137138
self.assertEqual(t.y, 300)
138139

140+
def testUpscaleCrop(self):
141+
item = Item.objects.get(image='200x100.jpg')
142+
t = self.backend.get_thumbnail(item.image, '400x300', crop='center', upscale=False)
143+
self.assertEqual(t.x, 200)
144+
self.assertEqual(t.y, 100)
145+
t = self.backend.get_thumbnail(item.image, '400x300', crop='center', upscale=True)
146+
self.assertEqual(t.x, 400)
147+
self.assertEqual(t.y, 300)
148+
139149
def testKVStore(self):
140150
im = ImageFile(Item.objects.get(image='500x500.jpg').image)
141151
self.kvstore.delete_thumbnails(im)

0 commit comments

Comments
 (0)
0