aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/process_media/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/process_media/__init__.py')
-rw-r--r--mediagoblin/process_media/__init__.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py
index 9a7d5c39..3d6b418f 100644
--- a/mediagoblin/process_media/__init__.py
+++ b/mediagoblin/process_media/__init__.py
@@ -14,8 +14,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import Image
+import os
+import Image
from celery.task import Task
from celery import registry
@@ -123,21 +124,20 @@ def process_image(entry):
mgg.queue_store, queued_filepath,
'source')
+ extension = os.path.splitext(queued_filename)[1]
+
try:
thumb = Image.open(queued_filename)
except IOError:
raise BadMediaFail()
thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS)
- # ensure color mode is compatible with jpg
- if thumb.mode != "RGB":
- thumb = thumb.convert("RGB")
- thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg')
+ thumb_filepath = create_pub_filepath(entry, 'thumbnail' + extension)
thumb_file = mgg.public_store.get_file(thumb_filepath, 'w')
with thumb_file:
- thumb.save(thumb_file, "JPEG", quality=90)
+ thumb.save(thumb_file)
# If the size of the original file exceeds the specified size of a `medium`
# file, a `medium.jpg` files is created and later associated with the media
@@ -148,14 +148,11 @@ def process_image(entry):
if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]:
medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS)
- if medium.mode != "RGB":
- medium = medium.convert("RGB")
-
- medium_filepath = create_pub_filepath(entry, 'medium.jpg')
+ medium_filepath = create_pub_filepath(entry, 'medium' + extension)
medium_file = mgg.public_store.get_file(medium_filepath, 'w')
with medium_file:
- medium.save(medium_file, "JPEG", quality=90)
+ medium.save(medium_file)
medium_processed = True
# we have to re-read because unlike PIL, not everything reads