Skip to content

Commit

Permalink
Merge pull request #892 from Savar/determine_extension_with_content
Browse files Browse the repository at this point in the history
using the content detection to determine  extension
  • Loading branch information
masom committed Aug 24, 2017
2 parents 6066995 + 0e54647 commit 3b1587e
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 13 deletions.
2 changes: 1 addition & 1 deletion tests/filters/test_distributed_collage.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class DistributedCollageFilterTestCase(FilterTestCase):
'800px-Christophe_Henner_-_June_2016.jpg',
'800px-Coffee_berries_1.jpg',
'800px-A_small_cup_of_coffee.JPG',
'513px-Coffee_beans_-_ziarna_kawy.jpg',
'513px-Coffee_beans_-_ziarna_kawy',
)

def test_fallback_when_have_not_enough_images(self):
Expand Down
6 changes: 6 additions & 0 deletions tests/filters/test_watermark.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ def test_watermark_filter_repeated_y(self):
ssim = self.get_ssim(image, expected)
expect(ssim).to_be_greater_than(0.98)

def test_watermark_filter_detect_extension_simple(self):
image = self.get_filtered('source.jpg', 'thumbor.filters.watermark', 'watermark(watermark,30,-50,60)')
expected = self.get_fixture('watermarkSimple.jpg')
ssim = self.get_ssim(image, expected)
expect(ssim).to_be_greater_than(0.98)

def test_watermark_filter_simple(self):
image = self.get_filtered('source.jpg', 'thumbor.filters.watermark', 'watermark(watermark.png,30,-50,60)')
expected = self.get_fixture('watermarkSimple.jpg')
Expand Down
1 change: 1 addition & 0 deletions tests/fixtures/filters/513px-Coffee_beans_-_ziarna_kawy
1 change: 1 addition & 0 deletions tests/fixtures/filters/watermark
7 changes: 3 additions & 4 deletions thumbor/filters/distributed_collage.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# TODO: custom alignment

import math
from os.path import abspath, dirname, isabs, join, splitext
from os.path import abspath, dirname, isabs, join

import cv2
import numpy as np
Expand Down Expand Up @@ -120,7 +120,6 @@ class Picture:
def __init__(self, url, thumbor_filter):
self.url = url
self.thumbor_filter = thumbor_filter
self.extension = splitext(url)[-1].lower()
self.engine = None
self.fetched = False
self.failed = False
Expand All @@ -142,7 +141,7 @@ def request(self):
def save_on_disc(self):
if self.fetched:
try:
self.engine.load(self.buffer, self.extension)
self.engine.load(self.buffer, None)
except Exception as err:
self.failed = True
logger.exception(err)
Expand Down Expand Up @@ -173,7 +172,7 @@ def resize_focal_points(self, focal_points, ratio):

def process(self, canvas_width, canvas_height, size):
try:
self.engine.load(self.buffer, self.extension)
self.engine.load(self.buffer, None)
width, height = self.engine.size
new_width, new_height = calc_new_size_by_height(width, height, canvas_height)
focal_points = StandaloneFaceDetector.features_to_focal_points(
Expand Down
6 changes: 2 additions & 4 deletions thumbor/filters/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
# http://www.opensource.org/licenses/mit-license
# Copyright (c) 2011 globo.com thumbor@googlegroups.com

from os.path import splitext
from thumbor.ext.filters import _nine_patch
from thumbor.filters import BaseFilter, filter_method
from thumbor.loaders import LoaderResult
Expand All @@ -19,7 +18,7 @@ class Filter(BaseFilter):
regex = r'(?:frame\((?P<url>.*?))'

def on_image_ready(self, buffer):
self.nine_patch_engine.load(buffer, self.extension)
self.nine_patch_engine.load(buffer, None)
self.nine_patch_engine.enable_alpha()
self.engine.enable_alpha()

Expand Down Expand Up @@ -83,7 +82,7 @@ def on_fetch_done(self, result):
else:
buffer = result

self.nine_patch_engine.load(buffer, self.extension)
self.nine_patch_engine.load(buffer, None)
self.storage.put(self.url, self.nine_patch_engine.read())
self.storage.put_crypto(self.url)
self.on_image_ready(buffer)
Expand All @@ -93,7 +92,6 @@ def on_fetch_done(self, result):
def frame(self, callback, url):
self.url = url
self.callback = callback
self.extension = splitext(self.url)[-1].lower()
self.nine_patch_engine = self.context.modules.engine.__class__(self.context)
self.storage = self.context.modules.storage

Expand Down
6 changes: 2 additions & 4 deletions thumbor/filters/watermark.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
# http://www.opensource.org/licenses/mit-license
# Copyright (c) 2011 globo.com thumbor@googlegroups.com

from os.path import splitext
from thumbor.ext.filters import _alpha
from thumbor.filters import BaseFilter, filter_method
from thumbor.loaders import LoaderResult
Expand All @@ -32,7 +31,7 @@ def detect_and_get_ratio_position(self, pos, length):
return pos

def on_image_ready(self, buffer):
self.watermark_engine.load(buffer, self.extension)
self.watermark_engine.load(buffer, None)
self.watermark_engine.enable_alpha()

mode, data = self.watermark_engine.image_data_as_rgb()
Expand Down Expand Up @@ -122,7 +121,7 @@ def on_fetch_done(self, result):
else:
buffer = result

self.watermark_engine.load(buffer, self.extension)
self.watermark_engine.load(buffer, None)
self.storage.put(self.url, self.watermark_engine.read())
self.storage.put_crypto(self.url)
self.on_image_ready(buffer)
Expand All @@ -141,7 +140,6 @@ def watermark(self, callback, url, x, y, alpha):
self.y = y
self.alpha = alpha
self.callback = callback
self.extension = splitext(self.url)[-1].lower()
self.watermark_engine = self.context.modules.engine.__class__(self.context)
self.storage = self.context.modules.storage

Expand Down

0 comments on commit 3b1587e

Please sign in to comment.