コード例 #1
0
ファイル: test_utils.py プロジェクト: subramanya92/thumbor
 def test_can_get_content_type(self):
     expect(CONTENT_TYPE.get('.jpg')).to_equal('image/jpeg')
     expect(CONTENT_TYPE.get('.jpeg')).to_equal('image/jpeg')
     expect(CONTENT_TYPE.get('.gif')).to_equal('image/gif')
     expect(CONTENT_TYPE.get('.png')).to_equal('image/png')
     expect(CONTENT_TYPE.get('.webp')).to_equal('image/webp')
     expect(CONTENT_TYPE.get('.mp4')).to_equal('video/mp4')
     expect(CONTENT_TYPE.get('.webm')).to_equal('video/webm')
     expect(CONTENT_TYPE.get('.svg')).to_equal('image/svg+xml')
     expect(CONTENT_TYPE.get('.tif')).to_equal('image/tiff')
     expect(CONTENT_TYPE.get('.tiff')).to_equal('image/tiff')
コード例 #2
0
 def test_can_get_content_type(self):
     expect(CONTENT_TYPE.get('.jpg')).to_equal('image/jpeg')
     expect(CONTENT_TYPE.get('.jpeg')).to_equal('image/jpeg')
     expect(CONTENT_TYPE.get('.gif')).to_equal('image/gif')
     expect(CONTENT_TYPE.get('.png')).to_equal('image/png')
     expect(CONTENT_TYPE.get('.webp')).to_equal('image/webp')
     expect(CONTENT_TYPE.get('.mp4')).to_equal('video/mp4')
     expect(CONTENT_TYPE.get('.webm')).to_equal('video/webm')
     expect(CONTENT_TYPE.get('.svg')).to_equal('image/svg+xml')
     expect(CONTENT_TYPE.get('.tif')).to_equal('image/tiff')
     expect(CONTENT_TYPE.get('.tiff')).to_equal('image/tiff')
コード例 #3
0
ファイル: test_utils.py プロジェクト: surajanimaker/thumbor
 def test_can_get_content_type():
     expect(CONTENT_TYPE.get(".jpg")).to_equal("image/jpeg")
     expect(CONTENT_TYPE.get(".jpeg")).to_equal("image/jpeg")
     expect(CONTENT_TYPE.get(".gif")).to_equal("image/gif")
     expect(CONTENT_TYPE.get(".png")).to_equal("image/png")
     expect(CONTENT_TYPE.get(".webp")).to_equal("image/webp")
     expect(CONTENT_TYPE.get(".mp4")).to_equal("video/mp4")
     expect(CONTENT_TYPE.get(".webm")).to_equal("video/webm")
     expect(CONTENT_TYPE.get(".svg")).to_equal("image/svg+xml")
     expect(CONTENT_TYPE.get(".tif")).to_equal("image/tiff")
     expect(CONTENT_TYPE.get(".tiff")).to_equal("image/tiff")
コード例 #4
0
    def define_image_type(self, context, result):
        if result is not None:
            if isinstance(result, ResultStorageResult):
                buffer = result.buffer
            else:
                buffer = result
            image_extension = EXTENSION.get(BaseEngine.get_mimetype(buffer),
                                            ".jpg")
            content_type = CONTENT_TYPE.get(image_extension,
                                            CONTENT_TYPE[".jpg"])

            return image_extension, content_type

        image_extension = context.request.format

        if image_extension is not None:
            image_extension = f".{image_extension}"
            logger.debug("Image format specified as %s.", image_extension)
        elif self.is_webp(context):
            image_extension = ".webp"
            logger.debug("Image format set by AUTO_WEBP as %s.",
                         image_extension)
        elif self.can_auto_convert_png_to_jpg():
            image_extension = ".jpg"
            logger.debug(
                "Image format set by AUTO_PNG_TO_JPG as %s.",
                image_extension,
            )
        else:
            image_extension = context.request.engine.extension
            logger.debug(
                "No image format specified. Retrieving "
                "from the image extension: %s.",
                image_extension,
            )

        content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE[".jpg"])

        if context.request.meta:
            context.request.meta_callback = (context.config.META_CALLBACK_NAME
                                             or self.request.arguments.get(
                                                 "callback", [None])[0])
            content_type = ("text/javascript" if context.request.meta_callback
                            else "application/json")
            logger.debug("Metadata requested. Serving content type of %s.",
                         content_type)

        logger.debug("Content Type of %s detected.", content_type)

        return (image_extension, content_type)
コード例 #5
0
ファイル: __init__.py プロジェクト: caeugusmao/thumbor
    def define_image_type(self, context, result):
        if result is not None:
            if isinstance(result, ResultStorageResult):
                buffer = result.buffer
            else:
                buffer = result
            image_extension = EXTENSION.get(BaseEngine.get_mimetype(buffer), '.jpg')
        else:
            image_extension = context.request.format
            if image_extension is not None:
                image_extension = '.%s' % image_extension
                logger.debug('Image format specified as %s.' % image_extension)
            elif self.is_webp(context):
                image_extension = '.webp'
                logger.debug('Image format set by AUTO_WEBP as %s.' % image_extension)
            elif self.can_auto_convert_png_to_jpg():
                image_extension = '.jpg'
                logger.debug('Image format set by AUTO_PNG_TO_JPG as %s.' % image_extension)
            else:
                image_extension = context.request.engine.extension
                logger.debug('No image format specified. Retrieving from the image extension: %s.' % image_extension)

        content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE['.jpg'])

        if context.request.meta:
            context.request.meta_callback = context.config.META_CALLBACK_NAME or self.request.arguments.get('callback', [None])[0]
            content_type = 'text/javascript' if context.request.meta_callback else 'application/json'
            logger.debug('Metadata requested. Serving content type of %s.' % content_type)

        logger.debug('Content Type of %s detected.' % content_type)

        return (image_extension, content_type)
コード例 #6
0
ファイル: __init__.py プロジェクト: mmutlusari/thumbor
    def define_image_type(self, context, result):
        if result is not None:
            image_extension = EXTENSION.get(BaseEngine.get_mimetype(result),
                                            '.jpg')
        else:
            image_extension = context.request.format
            if image_extension is not None:
                image_extension = '.%s' % image_extension
                logger.debug('Image format specified as %s.' % image_extension)
            elif self.is_webp(context):
                image_extension = '.webp'
                logger.debug('Image format set by AUTO_WEBP as %s.' %
                             image_extension)
            else:
                image_extension = context.request.engine.extension
                logger.debug(
                    'No image format specified. Retrieving from the image extension: %s.'
                    % image_extension)

        content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE['.jpg'])

        if context.request.meta:
            context.request.meta_callback = context.config.META_CALLBACK_NAME or self.request.arguments.get(
                'callback', [None])[0]
            content_type = 'text/javascript' if context.request.meta_callback else 'application/json'
            logger.debug('Metadata requested. Serving content type of %s.' %
                         content_type)

        logger.debug('Content Type of %s detected.' % content_type)

        return (image_extension, content_type)
コード例 #7
0
ファイル: __init__.py プロジェクト: nyimbi/thumbor
    def define_image_type(self, context, result):
        if result is not None:
            if isinstance(result, ResultStorageResult):
                buffer = result.buffer
            else:
                buffer = result
            image_extension = EXTENSION.get(BaseEngine.get_mimetype(buffer), ".jpg")
        else:
            image_extension = context.request.format
            if image_extension is not None:
                image_extension = ".%s" % image_extension
                logger.debug("Image format specified as %s." % image_extension)
            elif self.is_webp(context):
                image_extension = ".webp"
                logger.debug("Image format set by AUTO_WEBP as %s." % image_extension)
            else:
                image_extension = context.request.engine.extension
                logger.debug("No image format specified. Retrieving from the image extension: %s." % image_extension)

        content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE[".jpg"])

        if context.request.meta:
            context.request.meta_callback = (
                context.config.META_CALLBACK_NAME or self.request.arguments.get("callback", [None])[0]
            )
            content_type = "text/javascript" if context.request.meta_callback else "application/json"
            logger.debug("Metadata requested. Serving content type of %s." % content_type)

        logger.debug("Content Type of %s detected." % content_type)

        return (image_extension, content_type)
コード例 #8
0
ファイル: __init__.py プロジェクト: MyFab5/thumbor
    def _load_results(self, context):
        image_extension, content_type = self.define_image_type(context, None)

        quality = self.context.request.quality
        if quality is None:
            if image_extension == ".webp":
                quality = self.context.config.get("WEBP_QUALITY", self.context.config.QUALITY)
            else:
                quality = self.context.config.QUALITY
        results = context.request.engine.read(image_extension, quality)
        if context.request.max_bytes is not None:
            results = self.reload_to_fit_in_kb(
                context.request.engine, results, image_extension, quality, context.request.max_bytes
            )
        if not context.request.meta:
            results = self.optimize(context, image_extension, results)
        if context.request.format:
            # An optimizer might have modified the image format.
            content_type = CONTENT_TYPE.get(".%s" % context.request.format, content_type)
        return results, content_type
コード例 #9
0
ファイル: __init__.py プロジェクト: mmutlusari/thumbor
    def _load_results(self, context):
        image_extension, content_type = self.define_image_type(context, None)

        quality = self.context.request.quality
        if quality is None:
            if image_extension == '.webp' and self.context.config.WEBP_QUALITY is not None:
                quality = self.context.config.get('WEBP_QUALITY')
            else:
                quality = self.context.config.QUALITY
        results = context.request.engine.read(image_extension, quality)
        if context.request.max_bytes is not None:
            results = self.reload_to_fit_in_kb(context.request.engine, results,
                                               image_extension, quality,
                                               context.request.max_bytes)
        if not context.request.meta:
            results = self.optimize(context, image_extension, results)
        if context.request.format:
            # An optimizer might have modified the image format.
            content_type = CONTENT_TYPE.get('.%s' % context.request.format,
                                            content_type)
        return results, content_type