CHANGELOG
LICENSE
MANIFEST.in
Makefile
README.mkd
pyproject.toml
redis.conf
requirements
setup.cfg
setup.py
thumbor.key
docs/Makefile
docs/administration.rst
docs/autojpg.rst
docs/available_detectors.rst
docs/aws.png
docs/background_color.rst
docs/blur.rst
docs/brightness.rst
docs/canalplus.png
docs/conf.py
docs/configuration.rst
docs/contrast.rst
docs/convolution.rst
docs/cover.rst
docs/create_my_own_storage.rst
docs/crop_and_resize_algorithms.rst
docs/custom_detection.rst
docs/custom_engines.rst
docs/custom_error_handlers.rst
docs/custom_error_handling.rst
docs/custom_filters.rst
docs/custom_handler_lists.rst
docs/custom_loaders.rst
docs/custom_optimizers.rst
docs/custom_result_storages.rst
docs/custom_storages.rst
docs/customizing.rst
docs/deliveroo.png
docs/detection_algorithms.rst
docs/detectors.rst
docs/documentation_structure.txt
docs/enabling_detectors.rst
docs/equalize.rst
docs/extract_focal_points.rst
docs/filling.rst
docs/filters.rst
docs/focal.rst
docs/forbes-logo.png
docs/format.rst
docs/getting_started.rst
docs/gifv.rst
docs/globocom.png
docs/grayscale.rst
docs/hacking_on_thumbor.rst
docs/hosting.rst
docs/how_to_upload_images.rst
docs/image_loader.rst
docs/image_storage.rst
docs/imaging.rst
docs/index.rst
docs/installing.rst
docs/jpegtran.rst
docs/lazy_detection.rst
docs/libraries.rst
docs/licensing.rst
docs/logging.rst
docs/max_bytes.rst
docs/metadata.rst
docs/more.rst
docs/no_upscale.rst
docs/noise.rst
docs/nrc.png
docs/optimizers.rst
docs/plugins.rst
docs/posting_putting_deleting.rst
docs/proportion.rst
docs/quality.rst
docs/red_eye.rst
docs/requirements.txt
docs/result_storage.rst
docs/rgb.rst
docs/rotate.rst
docs/round_corners.rst
docs/running.rst
docs/saturation.rst
docs/security.rst
docs/sharpen.rst
docs/squareup.png
docs/stretch.rst
docs/strip_exif.rst
docs/strip_icc.rst
docs/terra.png
docs/the_team.rst
docs/thumbor-logo.png
docs/upload.rst
docs/upscale.rst
docs/usage.rst
docs/vox.png
docs/watermark.rst
docs/webdev.png
docs/whos_using_it.rst
docs/wikipedia.png
docs/images/after-focal.jpg
docs/images/after_convolution1.png
docs/images/after_convolution2.png
docs/images/animated.gif
docs/images/animated_static.gif
docs/images/before_convolution.png
docs/images/blur_after.jpg
docs/images/blur_before.jpg
docs/images/crop-width-height.png
docs/images/cropped_image.png
docs/images/dice_auto_background.png
docs/images/dice_blue_background.png
docs/images/dice_blur_background.png
docs/images/dice_lightblue_background.png
docs/images/dice_red_background.png
docs/images/dice_transparent_background.png
docs/images/eagle_after_sharpen.jpg
docs/images/eagle_before_sharpen.jpg
docs/images/extract1.jpg
docs/images/extract2.jpg
docs/images/extract3.jpg
docs/images/face_detection_alt.jpg
docs/images/face_detection_alt2.jpg
docs/images/face_detection_default.jpg
docs/images/face_detection_original.jpg
docs/images/faces_found_example.png
docs/images/feature_detection.jpg
docs/images/feature_detection_original.jpg
docs/images/fillauto.jpg
docs/images/fillblue.jpg
docs/images/fillblur.jpg
docs/images/filllightblue.jpg
docs/images/fillred.jpg
docs/images/focal-points.png
docs/images/gray.jpg
docs/images/horizontal-fit-in.png
docs/images/logo-globocom.png
docs/images/logo-squareup.png
docs/images/logo-thumbor.png
docs/images/man_after_sharpen.png
docs/images/man_before_sharpen.png
docs/images/oony.png
docs/images/properati-logo.png
docs/images/proportion.jpg
docs/images/rounded1.jpg
docs/images/rounded2.jpg
docs/images/rounded3.png
docs/images/stretch_after.jpg
docs/images/stretch_before.jpg
docs/images/thumbor-sentry-get-dsn.png
docs/images/tom_after_brightness.jpg
docs/images/tom_after_equalize.jpg
docs/images/tom_after_grayscale.jpg
docs/images/tom_after_max_bytes.jpg
docs/images/tom_after_negative_contrast.jpg
docs/images/tom_after_negative_saturation.png
docs/images/tom_after_noise.jpg
docs/images/tom_after_positive_contrast.jpg
docs/images/tom_after_positive_saturation.png
docs/images/tom_after_quality.jpg
docs/images/tom_after_rgb.jpg
docs/images/tom_after_rotate.jpg
docs/images/tom_after_round.jpg
docs/images/tom_after_watermark.jpg
docs/images/tom_before_brightness.jpg
docs/images/tom_before_rotate.jpg
docs/images/tom_fill_auto.jpg
docs/images/tom_fill_blue.jpg
docs/images/tom_fill_blur.jpg
docs/images/tom_fill_lightblue.jpg
docs/images/tom_fill_red.jpg
docs/images/tom_watermark_relative.jpg
docs/images/tom_watermark_resized_none_height.jpg
docs/images/tom_watermark_resized_width.jpg
docs/images/tom_watermark_resized_width_height.jpg
docs/images/vertical-fit-in.png
docs/images/viadeo.png
docs/images/yipit.png
integration_tests/__init__.py
integration_tests/pil_test.py
integration_tests/urls_helpers.py
integration_tests/imgs/16bit.png
integration_tests/imgs/README.mkd
integration_tests/imgs/animated.gif
integration_tests/imgs/cmyk.jpg
integration_tests/imgs/gradient.gif
integration_tests/imgs/gradient.jpg
integration_tests/imgs/gradient.webp
integration_tests/imgs/grayscale.jpg
integration_tests/imgs/rgba-interlaced.png
integration_tests/imgs/rgba.png
integration_tests/imgs/thumbor-exif.png
tests/__init__.py
tests/base.py
tests/conftest.py
tests/test_app.py
tests/test_config.py
tests/test_console.py
tests/test_context.py
tests/test_doctor.py
tests/test_importer.py
tests/test_point.py
tests/test_server.py
tests/test_signal_handler.py
tests/test_threadpool.py
tests/test_transformer.py
tests/test_url_composer.py
tests/test_utils.py
tests/compatibility/__init__.py
tests/compatibility/legacy_file_loader.py
tests/compatibility/legacy_file_result_storage.py
tests/compatibility/legacy_file_storage.py
tests/compatibility/test_compatibility_loader.py
tests/compatibility/test_compatibility_result_storage.py
tests/compatibility/test_compatibility_storage.py
tests/compatibility/test_file_loader.py
tests/compatibility/test_simple_compatibility.py
tests/detectors/__init__.py
tests/detectors/test_face_detector.py
tests/detectors/test_feature_detector.py
tests/detectors/test_glasses_detector.py
tests/detectors/test_profile_detector.py
tests/detectors/test_queued_detector.py
tests/engines/__init__.py
tests/engines/test_base_engine.py
tests/engines/test_gif.py
tests/engines/test_pil.py
tests/error_handlers/__init__.py
tests/error_handlers/test_file.py
tests/error_handlers/test_sentry.py
tests/filters/__init__.py
tests/filters/test_autojpg.py
tests/filters/test_background_color.py
tests/filters/test_base_filter.py
tests/filters/test_blur.py
tests/filters/test_brightness.py
tests/filters/test_colorize.py
tests/filters/test_contrast.py
tests/filters/test_convolution.py
tests/filters/test_fill.py
tests/filters/test_focal.py
tests/filters/test_format.py
tests/filters/test_max_age.py
tests/filters/test_noise.py
tests/filters/test_proportion.py
tests/filters/test_quality.py
tests/filters/test_redeye.py
tests/filters/test_rgb.py
tests/filters/test_rotate.py
tests/filters/test_round_corner.py
tests/filters/test_saturation.py
tests/filters/test_stretch.py
tests/filters/test_upscale.py
tests/filters/test_watermark.py
tests/fixtures/__init__.py
tests/fixtures/custom_error_handler.py
tests/fixtures/detection_error_detector.py
tests/fixtures/haarcascade_eye_tree_eyeglasses.xml
tests/fixtures/haarcascade_profileface.xml
tests/fixtures/max_age_conf.py
tests/fixtures/prevent_result_storage_detector.py
tests/fixtures/srgb.icc
tests/fixtures/thumbor.key
tests/fixtures/thumbor_config_server_test.conf
tests/fixtures/transformer_test_data.py
tests/fixtures/watermark_fixtures.py
tests/fixtures/images/10_years_of_Wikipedia_by_Guillaume_Paumier.jpg
tests/fixtures/images/15967251_212831_19242645_%D0%90%D0%B3%D0%B0%D1%82%D0%B0%D0%B2%D0%97%D0%BE%D0%BE%D0%BF%D0%B0%D1%80%D0%BA%D0%B5.jpg
tests/fixtures/images/15967251_212831_19242645_АгатавЗоопарке.jpg
tests/fixtures/images/16383x16383.png
tests/fixtures/images/16384x16384.png
tests/fixtures/images/1bit.png
tests/fixtures/images/1x1.png
tests/fixtures/images/1x1.psd
tests/fixtures/images/20x20.jpg
tests/fixtures/images/256_color_palette.png
tests/fixtures/images/940x2.png
tests/fixtures/images/9643x10328.jpg
tests/fixtures/images/BlueSquare_truncated.jpg
tests/fixtures/images/Christophe_Henner_-_June_2016.jpg
tests/fixtures/images/Commons-logo-inches.svg
tests/fixtures/images/Commons-logo.svg
tests/fixtures/images/Giunchedi%2C_Filippo_January_2015_01-cmyk-orientation-exif.jpg
tests/fixtures/images/Giunchedi%2C_Filippo_January_2015_01-cmyk.jpg
tests/fixtures/images/Giunchedi%2C_Filippo_January_2015_01-grayscale.jpg
tests/fixtures/images/Giunchedi%2C_Filippo_January_2015_01.jpg
tests/fixtures/images/Giunchedi%2C_Filippo_January_2015_01.png
tests/fixtures/images/README.mkd
tests/fixtures/images/SmallFullColourGIF.gif
tests/fixtures/images/__init__.py
tests/fixtures/images/alabama1_ap620%C3%A9.jpg
tests/fixtures/images/alabama1_ap620é.jpg
tests/fixtures/images/alabama1_ap620é.jpg
tests/fixtures/images/animated-one-frame.gif
tests/fixtures/images/animated.gif
tests/fixtures/images/cmyk-icc.jpg
tests/fixtures/images/cmyk.jpg
tests/fixtures/images/gradient_8bit.tif
tests/fixtures/images/gradient_lsb_16bperchannel.tif
tests/fixtures/images/gradient_msb_16bperchannel.tif
tests/fixtures/images/grayscale-icc.jpg
tests/fixtures/images/grayscale.jpg
tests/fixtures/images/image
tests/fixtures/images/image .jpg
tests/fixtures/images/image%20space.jpg
tests/fixtures/images/image.avif
tests/fixtures/images/image.heic
tests/fixtures/images/image.jp2
tests/fixtures/images/image.jpg
tests/fixtures/images/image.jpg%23something
tests/fixtures/images/image.jpg%3Fts%3D1
tests/fixtures/images/image.webp
tests/fixtures/images/image2%20.jpg
tests/fixtures/images/image_invalid.jpg
tests/fixtures/images/invalid_quantization.jpg
tests/fixtures/images/maracujá.jpg
tests/fixtures/images/no_face.jpg
tests/fixtures/images/paletted-transparent.png
tests/fixtures/images/qtables.xml
tests/fixtures/images/single_point.jpg
tests/fixtures/images/thumbor-exif.png
tests/fixtures/images/very-small-jpeg.jpg
tests/fixtures/images/watermark.png
tests/fixtures/images/weird_normalize_error.jpg
tests/fixtures/result_storages/default/42/57/3d7391a7bc9dcdef39375562aa088c386c85
tests/fixtures/result_storages/v2/im/ag/image.jpg
tests/handler_lists/__init__.py
tests/handler_lists/test_blacklist_handler_list.py
tests/handler_lists/test_healthcheck_handler_list.py
tests/handler_lists/test_upload_handler_list.py
tests/handlers/__init__.py
tests/handlers/test_base_handler.py
tests/handlers/test_base_handler_coordinate_translation.py
tests/handlers/test_base_handler_keeping_exif_copyright_tags.py
tests/handlers/test_base_handler_respecting_orientation.py
tests/handlers/test_base_handler_with_auto_png_to_jpg.py
tests/handlers/test_base_handler_with_auto_webp.py
tests/handlers/test_base_handler_with_cover.py
tests/handlers/test_base_handler_with_decompression_bomb.py
tests/handlers/test_base_handler_with_different_storage_config.py
tests/handlers/test_base_handler_with_engine_error.py
tests/handlers/test_base_handler_with_gifv.py
tests/handlers/test_base_handler_with_http_headers.py
tests/handlers/test_base_handler_with_http_loader.py
tests/handlers/test_base_handler_with_jpegtran.py
tests/handlers/test_base_handler_with_loader_error.py
tests/handlers/test_base_handler_with_max_dimensions.py
tests/handlers/test_base_handler_with_native_gif_handling.py
tests/handlers/test_base_handler_with_result_storage.py
tests/handlers/test_base_handler_with_stored_keys.py
tests/handlers/test_base_handler_without_unsafe.py
tests/handlers/test_blacklist.py
tests/handlers/test_fetch_result.py
tests/handlers/test_healthcheck.py
tests/handlers/test_upload_api.py
tests/loaders/__init__.py
tests/loaders/test_file_loader.py
tests/loaders/test_file_loader_http_fallback.py
tests/loaders/test_http_loader.py
tests/loaders/test_https_loader.py
tests/loaders/test_strict_https_loader.py
tests/metrics/__init__.py
tests/metrics/test_default_metrics.py
tests/metrics/test_logger_metrics.py
tests/metrics/test_statsd_metrics.py
tests/optimizers/__init__.py
tests/optimizers/test_gifv.py
tests/optimizers/test_jpegtran.py
tests/result_storages/__init__.py
tests/result_storages/test_file_storage.py
tests/result_storages/test_no_storage.py
tests/storages/__init__.py
tests/storages/test_file_storage.py
tests/storages/test_mixed_storage.py
tests/storages/test_no_storage.py
thumbor/__init__.py
thumbor/app.py
thumbor/config.py
thumbor/console.py
thumbor/context.py
thumbor/doctor.py
thumbor/importer.py
thumbor/point.py
thumbor/server.py
thumbor/signal_handler.py
thumbor/testing.py
thumbor/threadpool.py
thumbor/thumbor.conf
thumbor/transformer.py
thumbor/url.py
thumbor/url_composer.py
thumbor/utils.py
thumbor.egg-info/PKG-INFO
thumbor.egg-info/SOURCES.txt
thumbor.egg-info/dependency_links.txt
thumbor.egg-info/entry_points.txt
thumbor.egg-info/requires.txt
thumbor.egg-info/top_level.txt
thumbor/compatibility/__init__.py
thumbor/compatibility/compat.py
thumbor/compatibility/loader.py
thumbor/compatibility/result_storage.py
thumbor/compatibility/storage.py
thumbor/detectors/__init__.py
thumbor/detectors/local_detector.py
thumbor/detectors/face_detector/__init__.py
thumbor/detectors/face_detector/haarcascade_frontalface_alt.xml
thumbor/detectors/face_detector/haarcascade_frontalface_alt2.xml
thumbor/detectors/face_detector/haarcascade_frontalface_alt_tree.xml
thumbor/detectors/face_detector/haarcascade_frontalface_default.xml
thumbor/detectors/feature_detector/__init__.py
thumbor/detectors/glasses_detector/__init__.py
thumbor/detectors/glasses_detector/haarcascade_eye_tree_eyeglasses.xml
thumbor/detectors/profile_detector/__init__.py
thumbor/detectors/profile_detector/haarcascade_profileface.xml
thumbor/detectors/queued_detector/__init__.py
thumbor/detectors/queued_detector/queued_complete_detector.py
thumbor/detectors/queued_detector/queued_face_detector.py
thumbor/detectors/queued_detector/queued_feature_detector.py
thumbor/detectors/queued_sqs_detector/__init__.py
thumbor/engines/__init__.py
thumbor/engines/gif.py
thumbor/engines/json_engine.py
thumbor/engines/pil.py
thumbor/engines/extensions/__init__.py
thumbor/engines/extensions/exif_orientation_editor.py
thumbor/engines/extensions/pil.py
thumbor/error_handlers/__init__.py
thumbor/error_handlers/file.py
thumbor/error_handlers/sentry.py
thumbor/ext/__init__.py
thumbor/ext/filters/__init__.py
thumbor/ext/filters/_alpha.c
thumbor/ext/filters/_bounding_box.c
thumbor/ext/filters/_brightness.c
thumbor/ext/filters/_colorize.c
thumbor/ext/filters/_composite.c
thumbor/ext/filters/_contrast.c
thumbor/ext/filters/_convolution.c
thumbor/ext/filters/_curve.c
thumbor/ext/filters/_equalize.c
thumbor/ext/filters/_fill.c
thumbor/ext/filters/_nine_patch.c
thumbor/ext/filters/_noise.c
thumbor/ext/filters/_rgb.c
thumbor/ext/filters/_round_corner.c
thumbor/ext/filters/_saturation.c
thumbor/ext/filters/_sharpen.c
thumbor/ext/filters/lib/colors.c
thumbor/ext/filters/lib/colors.h
thumbor/ext/filters/lib/filter.h
thumbor/ext/filters/lib/image_utils.h
thumbor/ext/filters/lib/sharpen.h
thumbor/ext/filters/lib/wavelet_sharpen.c
thumbor/filters/__init__.py
thumbor/filters/autojpg.py
thumbor/filters/background_color.py
thumbor/filters/blur.py
thumbor/filters/brightness.py
thumbor/filters/colorize.py
thumbor/filters/contrast.py
thumbor/filters/convolution.py
thumbor/filters/curve.py
thumbor/filters/equalize.py
thumbor/filters/extract_focal.py
thumbor/filters/fill.py
thumbor/filters/focal.py
thumbor/filters/format.py
thumbor/filters/frame.py
thumbor/filters/grayscale.py
thumbor/filters/haarcascade_eye.xml
thumbor/filters/max_age.py
thumbor/filters/max_bytes.py
thumbor/filters/no_upscale.py
thumbor/filters/noise.py
thumbor/filters/proportion.py
thumbor/filters/quality.py
thumbor/filters/redeye.py
thumbor/filters/rgb.py
thumbor/filters/rotate.py
thumbor/filters/round_corner.py
thumbor/filters/saturation.py
thumbor/filters/sharpen.py
thumbor/filters/stretch.py
thumbor/filters/strip_exif.py
thumbor/filters/strip_icc.py
thumbor/filters/upscale.py
thumbor/filters/watermark.py
thumbor/fixtures/filters/256_color_palette.png
thumbor/fixtures/filters/256_color_palette_blur_result.png
thumbor/fixtures/filters/513px-Coffee_beans_-_ziarna_kawy
thumbor/fixtures/filters/513px-Coffee_beans_-_ziarna_kawy.jpg
thumbor/fixtures/filters/800px-Christophe_Henner_-_June_2016.jpg
thumbor/fixtures/filters/800px-Coffee_berries_1.jpg
thumbor/fixtures/filters/800px-Guido-portrait-2014.jpg
thumbor/fixtures/filters/800px-Katherine_Maher.jpg
thumbor/fixtures/filters/Giunchedi%2C_Filippo_January_2015_01.jpg
thumbor/fixtures/filters/PNG_transparency_demonstration_1.png
thumbor/fixtures/filters/PNG_transparency_demonstration_1_auto.png
thumbor/fixtures/filters/PNG_transparency_demonstration_1_blue.png
thumbor/fixtures/filters/blur.jpg
thumbor/fixtures/filters/blur2.jpg
thumbor/fixtures/filters/blur3.jpg
thumbor/fixtures/filters/blur4.png
thumbor/fixtures/filters/brightness.jpg
thumbor/fixtures/filters/colorize.jpg
thumbor/fixtures/filters/contrast.jpg
thumbor/fixtures/filters/convolution-false.png
thumbor/fixtures/filters/convolution-true.png
thumbor/fixtures/filters/fill.jpg
thumbor/fixtures/filters/fill2.jpg
thumbor/fixtures/filters/fill3.jpg
thumbor/fixtures/filters/fill4.jpg
thumbor/fixtures/filters/fill5.png
thumbor/fixtures/filters/focal.jpg
thumbor/fixtures/filters/noise.png
thumbor/fixtures/filters/proportion.jpg
thumbor/fixtures/filters/quality-10%.jpg
thumbor/fixtures/filters/redeye.png
thumbor/fixtures/filters/redeye_applied.png
thumbor/fixtures/filters/rgb.jpg
thumbor/fixtures/filters/rotate.jpg
thumbor/fixtures/filters/round_corner.jpg
thumbor/fixtures/filters/round_corner.png
thumbor/fixtures/filters/round_corner.webp
thumbor/fixtures/filters/round_corner1.jpg
thumbor/fixtures/filters/round_corner2.jpg
thumbor/fixtures/filters/round_corner3.jpg
thumbor/fixtures/filters/saturation.png
thumbor/fixtures/filters/source.jpg
thumbor/fixtures/filters/stretch.jpg
thumbor/fixtures/filters/upscale1.jpg
thumbor/fixtures/filters/upscale2.jpg
thumbor/fixtures/filters/upscale3.jpg
thumbor/fixtures/filters/upscale4.jpg
thumbor/fixtures/filters/watermark.png
thumbor/fixtures/filters/watermark.svg
thumbor/fixtures/filters/watermarkBig.png
thumbor/fixtures/filters/watermarkCenter.jpg
thumbor/fixtures/filters/watermarkCenterX.jpg
thumbor/fixtures/filters/watermarkCenterY.jpg
thumbor/fixtures/filters/watermarkRepeat.jpg
thumbor/fixtures/filters/watermarkRepeatX.jpg
thumbor/fixtures/filters/watermarkRepeatY.jpg
thumbor/fixtures/filters/watermarkResize50pWidth.jpg
thumbor/fixtures/filters/watermarkResize60p80p.jpg
thumbor/fixtures/filters/watermarkResize70pHeight.jpg
thumbor/fixtures/filters/watermarkSimple.jpg
thumbor/fixtures/filters/watermarkSimpleBig.jpg
thumbor/handler_lists/__init__.py
thumbor/handler_lists/blacklist.py
thumbor/handler_lists/healthcheck.py
thumbor/handler_lists/upload.py
thumbor/handlers/__init__.py
thumbor/handlers/blacklist.py
thumbor/handlers/healthcheck.py
thumbor/handlers/image_resource.py
thumbor/handlers/imaging.py
thumbor/handlers/upload.py
thumbor/lib/__init__.py
thumbor/loaders/__init__.py
thumbor/loaders/file_loader.py
thumbor/loaders/file_loader_http_fallback.py
thumbor/loaders/http_loader.py
thumbor/loaders/https_loader.py
thumbor/loaders/strict_https_loader.py
thumbor/metrics/__init__.py
thumbor/metrics/logger_metrics.py
thumbor/metrics/statsd_metrics.py
thumbor/optimizers/__init__.py
thumbor/optimizers/gifv.py
thumbor/optimizers/jpegtran.py
thumbor/result_storages/__init__.py
thumbor/result_storages/file_storage.py
thumbor/result_storages/no_storage.py
thumbor/storages/__init__.py
thumbor/storages/file_storage.py
thumbor/storages/mixed_storage.py
thumbor/storages/no_storage.py
thumbor/url_signers/__init__.py