This is a maintenance release with updated dependencies
This is a maintenance release with updated dependencies
- Fix memory leak when saving HEIC/AVIF images with alpha channel.
- Add IMGPROXY_FAIL_ON_DEPRECATION config. When set to
true, imgproxy will exit with a fatal error if a deprecated config option is used. - Add flip processing option.
- Add IMGPROXY_PRESETS_PATH config.
- (pro) Add IMGPROXY_INFO_PRESETS_PATH config.
- (pro) Add IMGPROXY_AVIF_SUBSAMPLE config.
- (pro) Add avif_options processing option.
- (pro) Add blur_areas processing option.
- (pro) Add
canonical_namesargument to the exif info option. - (pro) Return
orientationfield in the/infoendpoint response when the dimensions info option is enabled.
- For security reasons, imgproxy now accepts only service account keys for Google Cloud Storage integration and Google Cloud Secret Manager integration.
- When image source responds with a 4xx status code, imgproxy now responds with the same status code instead of always responding with
404 Not Found. - When image source responds with a 5xx status code, imgproxy now responds with
502 Bad Gatewayinstead of500 Internal Server Error. - Remove
iframeelements from SVGs during sanitization.
- Fix crop coordinates calculation when the image has an EXIF orientation different from
1and therotateprocessing option is used. - Fix responding with 404 when a GCS bucket or object is missing.
- Fix handling
:encoded as%3Ain processing/info options. - (pro) Fix memory leak in ML features.
- (pro) Fix generating video thumbnails when the server doesn't include the
Accept-Rangesheader in the response but includes theContent-Range: bytes ...header. - (pro) Fix watermark_size processing option behavior when one of the dimensions is zero.
- Deprecate
-keypathand-saltpathCLI arguments. UseIMGPROXY_KEYandIMGPROXY_SALTenvironment variables instead. - Deprecate
-presetsCLI argument. UseIMGPROXY_PRESETS_PATHenvironment variable instead. - (pro) Deprecate
-info-presetsCLI argument. UseIMGPROXY_INFO_PRESETS_PATHenvironment variable instead. - (pro) Deprecate support for object detection models in DarkNet format. Use ONNX format instead.
- Format New Relic and OpenTelemetry metadata values that implement the
fmt.Stringerinterface as strings.
- (pro) Fix memory leak during video thumbnail generation.
- Add IMGPROXY_GRACEFUL_STOP_TIMEOUT config.
- (pro) Add color_profile processing option and IMGPROXY_COLOR_PROFILES_DIR config.
- Update the default graceful stop timeout to twice the IMGPROXY_TIMEOUT config value.
- (pro) Improve video decoding performance.
- (pro) Respond with
422 Unprocessable Entityon error during video decoding.
- Fix the
Varyheader value whenIMGPROXY_AUTO_JXLorIMGPROXY_ENFORCE_JXLconfigs are set totrue. - Fix connection break when the
rawprocessing option is used and the response status code does not allow a response body (such as304 Not Modified). - Fix the
If-Modified-Sincerequest header handling when therawprocessing option is used. - Fix
X-Origin-HeightandX-Result-Heightdebug header values for animated images. - Fix keeping copyright info in EXIF.
- Fix preserving color profiles in TIFF images.
- Fix freezes during sanitization or minification of some broken SVGs.
- (pro) Fix generating thumbnails for VP9 videos with high bit depth.
- (pro) Fix
IMGPROXY_CUSTOM_RESPONSE_HEADERSandIMGPROXY_RESPONSE_HEADERS_PASSTHROUGHconfigs behavior when therawprocessing option is used.
- Fix parsing and minifying some SVGs.
- Add IMGPROXY_MAX_RESULT_DIMENSION config and max_result_dimension processing option.
- Add IMGPROXY_ALLOWED_PROCESSING_OPTIONS config.
- (pro) Add IMGPROXY_ALLOWED_INFO_OPTIONS config.
- (pro) Add IMGPROXY_MAX_CHAINED_PIPELINES config.
- Add
imgproxy.source_image_originattribute to New Relic, DataDog, and OpenTelemetry traces. - Add
imgproxy.source_image_urlandimgproxy.source_image_originattributes todownloading_imagespans in New Relic, DataDog, and OpenTelemetry traces. - Add
imgproxy.processing_optionsattribute toprocessing_imagespans in New Relic, DataDog, and OpenTelemetry traces. - Add
Source Image Originattribute to error reports. - Add
workersandworkers_utilizationmetrics to all metrics services. - (pro) Add crop_aspect_ratio processing option.
- (pro) Add IMGPROXY_PDF_NO_BACKGROUND config.
- Add IMGPROXY_WEBP_EFFORT config.
- Add IMGPROXY_WEBP_PRESET config.
- (pro) Add support for saving images as PDF.
- Suppress "Response has no supported checksum" warnings from S3 SDK.
- The IMGPROXY_USER_AGENT config now supports the
%current_versionvariable that is replaced with the current imgproxy version. - (docker) Optimized image quantization.
- (pro) Improved BlurHash generation performance.
- Fix
X-Origin-Content-Lengthheader value when SVG is sanitized or minified. - Mark JPEG XL format as supporting quality. Fixes autoquality for JPEG XL.
- Fix the
extendprocessing option when only one dimension is set. - (pro) Fix object detection when the
IMGPROXY_USE_LINEAR_COLORSPACEconfig is set totrue. - (pro) Fix BlurHash generation when the
IMGPROXY_USE_LINEAR_COLORSPACEconfig is set totrue. - (pro) Fix detection of PDF files with a header offset.
- Remove the
IMGPROXY_SVG_FIX_UNSUPPORTEDconfig. The problem it was solving is now fixed in librsvg.
- Add IMGPROXY_BASE64_URL_INCLUDES_FILENAME config.
- Add IMGPROXY_COOKIE_PASSTHROUGH_ALL config.
- (pro) Add PNG EXIF and XMP data to the
/infoendpoint response. - (pro) Add the
mime_typefield to the/infoendpoint response.
- Treat 206 (Partial Content) responses from a source server as 200 (OK) when they contain a full content range.
- Improved error reporting.
- (pro) Change saturation adjustment algorithm to be more CIE-correct.
- (pro) Don't check image complexity during best format selection when
IMGPROXY_BEST_FORMAT_COMPLEXITY_THRESHOLDis set to0.
- Fix determinimg the default hostname for cookies passthrough.
- (pro) Fix setting the
Hostheader with theIMGPROXY_CUSTOM_REQUEST_HEADERSconfig. - (pro) Fix passing through the
Hostheader with theIMGPROXY_REQUEST_HEADERS_PASSTHROUGHconfig. - (pro) Fix passing through request headers with the
IMGPROXY_REQUEST_HEADERS_PASSTHROUGHwhen therawoption is used. - (pro) Fix
IMGPROXY_BEST_FORMAT_ALLOW_SKIPSconfig behavior. - (pro) Fix flattening behavior when chained pipelines are used and the resulting format doesn't support transparency.
- (pro) Fix advanced smart crop when the most feature points are located close to the right or the bottom edge.
- Remove the
IMGPROXY_S3_MULTI_REGIONconfig. imgproxy now always work in multi-regional S3 mode.
- Fix preventing requests to
0.0.0.0when imgproxy is configured to deny loopback addresses. - (pro) Fix timeouts in AWS Lambda when running in development mode.
- Add IMGPROXY_SOURCE_URL_QUERY_SEPARATOR config.
- (pro) Add YOLOv11 object detection model support.
- (pro) Improve image complexity calculation for best format selection.
- (pro) Use PNG quantization for very low-complexity images when the
bestformat is used.
- Fix blur and sharpen performance for images with alpha channel.
- (pro) Fix object detecttion accuracy.
- Add JPEG XL (JXL) support.
- Add PSD (Photoshop Document) and PSB (Photoshop Big) images support.
- Add IMGPROXY_AUTO_JXL, IMGPROXY_ENFORCE_JXL, and IMGPROXY_JXL_EFFORT configs.
- (pro) Add IMGPROXY_AUTOQUALITY_JXL_NET config.
- (pro) Add objects_position processing and info options.
- (pro) Add IMGPROXY_OBJECT_DETECTION_SWAP_RB config.
- (pro) Add IMGPROXY_OBJECT_DETECTION_GRAVITY_MODE config.
- Change
IMGPROXY_AVIF_SPEEDdefault value to8. - Change
IMGPROXY_FORMAT_QUALITYdefault value towebp=79,avif=63,jxl=77. - Rename
IMGPROXY_ENABLE_WEBP_DETECTIONtoIMGPROXY_AUTO_WEBP. The old name is deprecated but still supported. - Rename
IMGPROXY_ENABLE_AVIF_DETECTIONtoIMGPROXY_AUTO_AVIF. The old name is deprecated but still supported. - (pro) Change
IMGPROXY_AUTOQUALITY_FORMAT_MINdefault value toavif=60. - (pro) Change
IMGPROXY_AUTOQUALITY_FORMAT_MAXdefault value toavif=65. - (pro) Use the last page/frame of the source image when the
pageprocessing option value is greater than or equal to the number of pages/frames in the source image.
- Fix detecting of width and height of HEIF images that include
irotboxes. - Set
Errorstatus for errorred traces in OpenTelemetry. - Fix URL parsing error when a non-http(s) URL contains a
%symbol outside of the percent-encoded sequence. - Fix importing ICC profiles for 16-bit images with an alpha channel.
- Fix handling ICC profiles with vips 8.15+.
- (pro) Fix opject detection accuracy when using YOLOv8 or YOLOv10 models.
- (pro) Fix usage of the
objandobjwgravity types inside thecropprocessing option. - (pro) Fix detecting of width and height when orientation is specified in EXIF but EXIF info is not requested.
- (pro) Fix watermark shadow clipping.
IMGPROXY_ENABLE_WEBP_DETECTIONconfig is deprecated. UseIMGPROXY_AUTO_WEBPinstead.IMGPROXY_ENABLE_AVIF_DETECTIONconfig is deprecated. UseIMGPROXY_AUTO_AVIFinstead.
- (pro) Improve
monochromeandduotoneprocessing options.
- Fix loading log configs from local files and secret managers.
- Fix detecting HEIF images with the
heixbrand. - Fix downloading source images when the image source requires a cookie challenge.
- (pro) Fix playback of videos created from animations in Google Chrome.
- (pro) Fix detecting of width and height of HEIF images that have orientation specified in EXIF.
- Add
imgproxy.source_image_urlandimgproxy.processing_optionsattributes to New Relic, DataDog, and OpenTelemetry traces. - Add IMGPROXY_S3_ENDPOINT_USE_PATH_STYLE config.
- (pro) Add monochrome processing option.
- (pro) Add duotone processing option.
- (pro) Add
objwgravity type. - (pro) Add an object pseudo-class
allthat can be used with theobjandobjwgravity types to match all detected objects. - (pro) Add IMGPROXY_SMART_CROP_ADVANCED_MODE config.
- (pro) Add IMGPROXY_OBJECT_DETECTION_FALLBACK_TO_SMART_CROP config.
- (docker) Add a script for building Linux packages.
- Properly set the
net.host.nameandhttp.urltags in OpenTelemetry traces. - (pro) Object detection: class names file can contain object classes' weights.
- Fix handling
#symbols inlocal://,s3://,gcs://,abs://, andswift://URLs. - Fix
IMGPROXY_FALLBACK_IMAGE_HTTP_CODEvalue check. Allow0value. - (docker) Fix loading HEIC images made with iOS 18.
- Add IMGPROXY_S3_ASSUME_ROLE_EXTERNAL_ID config.
- Add IMGPROXY_WRITE_RESPONSE_TIMEOUT config.
- Add IMGPROXY_REPORT_IO_ERRORS config.
- Add IMGPROXY_ARGUMENTS_SEPARATOR config.
- Add IMGPROXY_PRESETS_SEPARATOR config.
- (pro) Add support for object detection models in ONNX format.
- (pro) Add colorize processing option.
- (pro) Add IMGPROXY_WATERMARK_PREPROCESS_URL config.
- (pro) Add IMGPROXY_FALLBACK_IMAGE_PREPROCESS_URL config.
- Automatically add
http://scheme to theIMGPROXY_S3_ENDPOINTvalue if it has no scheme. - Trim redundant slashes in the S3, GCS, ABS, and Swift object keys.
- Rename
IMGPROXY_WRITE_TIMEOUTtoIMGPROXY_TIMEOUT. The old name is deprecated but still supported. - Rename
IMGPROXY_READ_TIMEOUTtoIMGPROXY_READ_REQUEST_TIMEOUT. The old name is deprecated but still supported. - (pro) Allow specifying gradient direction as an angle in degrees.
- (pro) Speed up ML features.
- (pro) Update the face detection model.
- Fix HEIC/AVIF dimension limit handling.
- Fix SVG detection when the root element has a namespace.
- Fix treating percent-encoded symbols in
local://,s3://,gcs://,abs://, andswift://URLs. - (pro) Fix style injection to SVG.
- (pro) Fix video tiles generation when the video's SAR is not
1.
IMGPROXY_WRITE_TIMEOUTconfig is deprecated. UseIMGPROXY_TIMEOUTinstead.IMGPROXY_READ_TIMEOUTconfig is deprecated. UseIMGPROXY_READ_REQUEST_TIMEOUTinstead.
- Fix the default
IMGPROXY_WORKERSvalue when cgroup limits are applied.
- Add IMGPROXY_ALWAYS_RASTERIZE_SVG config.
- Add IMGPROXY_PNG_UNLIMITED and IMGPROXY_SVG_UNLIMITED configs.
- (pro) Add
fill,foxus_x, andfocus_yarguments to the video_thumbnail_tile processing option. - (pro) Add the
ch(chessboard order) position for watermarks. - (pro) Add the watermark_rotate processing option.
- Respond with 404 when the bucket/container name or object key is empty in an S3, Google Cloud Storage, Azure Blob Storage, or OpenStack Object Storage (Swift) URL.
- Ensure that the watermark is always centered when replicated.
- (pro) Improve unsharp masking.
- (docker) Update AWS Lambda adapter to 0.8.3.
- (docker) Increase EXIF size limit to 8MB.
- Fix parsing some TIFFs.
- Fix over-shrinking during scale-on-load.
- Fix watermarks overlapping animation frames in some cases.
- (pro) Fix false-positive video detections.
- Add request ID, processing/info options, and source image URL to error reports.
- Support configuring OpenTelemetry with standard general and OTLP Exporter environment variables.
IMGPROXY_MAX_SRC_RESOLUTIONdefault value is increased to 50.
- Fix loading environment variables from the AWS System Manager Parameter Store when there are more than 10 parameters.
- (pro) Fixed thumbnail generation for MKV/WebM files containing blocks invalidly marked as keyframes.
IMGPROXY_OPEN_TELEMETRY_ENDPOINT,IMGPROXY_OPEN_TELEMETRY_PROTOCOL,IMGPROXY_OPEN_TELEMETRY_GRPC_INSECURE,IMGPROXY_OPEN_TELEMETRY_SERVICE_NAME,IMGPROXY_OPEN_TELEMETRY_PROPAGATORS, andIMGPROXY_OPEN_TELEMETRY_CONNECTION_TIMEOUTconfig options are deprecated. Use standard OpenTelemetry environment variables instead.
- Add the IMGPROXY_TRUSTED_SIGNATURES config.
- (pro) Add the hashsum processing and info options.
- (pro) Add the calc_hashsums info option.
- (pro) Add the IMGPROXY_VIDEO_THUMBNAIL_TILE_AUTO_KEYFRAMES config.
- (pro) Add the IMGPROXY_WEBP_SMART_SUBSAMPLE config and the
smart_subsampleargument to the webp_options processing option - (docker) Add lambda adapter to the Docker image.
- Allow relative values for
gravityandwatermarkoffsets. - Revised downloading errors reporting.
- Allow
IMGPROXY_TTLto be zero. - Don't set
ExpiresHTTP header as it is ignored if theCache-Controlheader is set. - Don't log health-check requests and responses.
- Enforce
IMGPROXY_WORKERS=1when running in AWS Lambda. - Reduce memory usage when scaling down animated images.
- (pro) If the
stepargument of thevideo_thumbnail_tileis negative, calculatestepautomatically.
- Fix loading animated images with a huge number of frames.
- Fix recursive presets detection.
- (pro) Fix
video_thumbnail_tileoption behavior when the video has a single keyframe. - (pro) Fix the
trimargument of thevideo_thumbnail_tileprocessing option. - (pro) Fix
video_thumbnail_tilebehavior when thestepargument value is less than frame duration. - (pro) Fix VPx video stream duration detection.
- (pro) Fix thumbnal generation for VP9 videos.
- (pro) Fix thumbnal generation for videos with a large time base denumenator.
- Add
status_codes_totalcounter to Prometheus metrics. - Add client-side decryption support for S3 integration.
- Add HEIC saving support.
- (pro) Add the
IMGPROXY_VIDEO_THUMBNAIL_KEYFRAMESconfig and the video_thumbnail_keyframes processing option. - (pro) Add the video_thumbnail_tile processing option.
- (pro) Add the
durationfield to the video streams information in the/infoendpoint response. - (pro) Add the colorspace, bands, sample_format, pages_number, and alpha info options.
- (pro) Improve video detection.
- (pro) Fix detection of some videos.
- (pro) Fix headers and cookies passthrough when the source is a video.
- (pro) Fix wrong behavior of the
background_alphaoption when thebestformat is used. - (docker) Fix saving EXIF strings containing invalid UTF-8 characters.
- (docker) Fix possible segfaults while processing HEIC/AVIF images.
- (docker) Fix rendering GIFs embedded in SVGs.
- (pro) Add info options support to the
/infoendpoint. - (pro) Add video streams info to the
/infoendpoint response. - (docker) Add support for TIFFs with 16-bit float samples.
- (docker) Add support for TIFFs with the old-style JPEG compression.
- Limit vector image sizes to
IMGPROXY_MAX_SRC_RESOLUTION. - (pro) Respect image orientation when extracting image dimensions for the
/infoendpoint response. - (pro) Respect
IMGPROXY_WORKERSandIMGPROXY_REQUESTS_QUEUE_SIZEconfigs in the/infoendpoint. - (pro) Collect detailed metrics for the
/infoendpoint. - (docker) Invalid UTF-8 strings in image metadata are fixed instead of being ignored.
- Fix parsing of HEIF files with large boxes.
- Fix wrong colors when the source image has a linear colorspace.
- Fix wrong colors or opacity when the source image is a TIFF with a float sample format.
- Fix crashes during processing of large animated WebPs.
- Fix
vips_allocsOTel metric unit (wasBy, fixed to1). - (pro) Fix generating thumbnails for WebM videos with transparency.
- (pro) Fix style injection into some SVGs.
- Add
IMGPROXY_WORKERSalias for theIMGPROXY_CONCURRENCYconfig. - Add multi-region mode to S3 integration.
- Add the ability to load environment variables from a file or a cloud secret.
- (pro) Add pages processing option.
- Don't report
The image request is cancellederrors. - Create and destroy a tiny image during health check to check that vips is operational.
- (pro) Change the
/infoendpoint behavior to return only the first EXIF/XMP/IPTC block data of JPEG if the image contains multiple metadata blocks of the same type.
- Fix reporting image loading errors.
- Fix the
Cache-ControlandExpiresheaders behavior when bothIMGPROXY_CACHE_CONTROL_PASSTHROUGHandIMGPROXY_FALLBACK_IMAGE_TTLconfigs are set. - (pro) Fix the
IMGPROXY_FALLBACK_IMAGE_TTLconfig behavior when thefallback_image_urlprocessing option is used.
- Fix saving to JPEG when using linear colorspace.
- Fix the
Cache-ControlandExpiresheaders passthrough when SVG is sanitized or fixed. - (pro) Fix complexity calculation for still images.
- (docker) Fix crashes during some resizing cases.
- Change maximum and default values of
IMGPROXY_AVIF_SPEEDto9. - (pro) Fix detection of some videos.
- (pro) Better calculation of the image complexity during choosing the best format.
- (docker) Fix freezes and crashes introduced in v3.18.0 by liborc.
- Add
IMGPROXY_URL_REPLACEMENTSconfig. - (pro) Add
IMGPROXY_STRIP_METADATA_DPIconfig. - (pro) Add dpi processing option.
- (pro) Add WebP EXIF and XMP to the
/inforesponse. - (pro) Add Photoshop resolution data to the
/inforesponse.
- Preserve GIF's bit-per-sample.
- Respond with 422 on error during image loading.
- (pro) Fix applying the
resizing_algorithmprocessing option when resizing images with an alpha channel.
- Add
process_resident_memory_bytes,process_virtual_memory_bytes,go_memstats_sys_bytes,go_memstats_heap_idle_bytes,go_memstats_heap_inuse_bytes,go_goroutines,go_threads,buffer_default_size_bytes,buffer_max_size_bytes, andbuffer_size_bytesmetrics to OpenTelemetry. - Add support for the
Last-Modifiedresponse header and theIf-Modified-Sincerequest header (controlled by theIMGPROXY_USE_LAST_MODIFIEDconfig). - Add
IMGPROXY_S3_ASSUME_ROLE_ARNconfig. - Add
IMGPROXY_MALLOCDocker-only config.
- Optimized memory buffers pooling for better performance and memory reusage.
- Optimized watermarks application.
- Fix crushes when
watermark_texthas an invalid value.
- Fix crashes in cases where the
max_bytesprocessing option was used and image saving failed. - Fix error when using the
extendorextend_aspect_ratioprocessing option while setting zero width or height. - Fix color loss when applying a watermark with a palette on an image without a palette.
- (pro) Fix crashes when using
IMGPROXY_SMART_CROP_FACE_DETECTIONwith largeIMGPROXY_CONCURRENCY. - (pro) Fix watermark scaling when neither watermark scale nor watermark size is specified.
- Add support for
Sec-CH-DPRandSec-CH-Widthclient hints. - Add support for Base64-encoded
filenameprocessing option values. - Add
IMGPROXY_REQUEST_HEADERS_PASSTHROUGHandIMGPROXY_RESPONSE_HEADERS_PASSTHROUGHconfigs.
- Improved object-oriented crop.
- Fix detection of dead HTTP/2 connections.
- Fix the way the
dprprocessing option affects offsets and paddings.
- Remove suport for
Viewport-Widthclient hint. - Don't set
Content-DPRheader (deprecated in the specification).
- Add the
IMGPROXY_ALLOW_LOOPBACK_SOURCE_ADDRESSES,IMGPROXY_ALLOW_LINK_LOCAL_SOURCE_ADDRESSES, andIMGPROXY_ALLOW_PRIVATE_SOURCE_ADDRESSESconfigs.
- Connecting to loopback, link-local multicast, and link-local unicast IP addresses when requesting source images is prohibited by default.
- Tuned source image downloading flow.
- Disable extension checking if the
rawprocessing option is used.
- (pro) Fix face detection during advanced smart crop in some cases.
- Add extend_aspect_ratio processing option.
- Add the
IMGPROXY_ALLOW_SECURITY_OPTIONSconfig +max_src_resolution,max_src_file_size,max_animation_frames, andmax_animation_frame_resolutionprocessing options. - (pro) Add advanced smart crop.
- Make the
expiresprocessing option setExpiresandCache-Controlheaders. - Sanitize
usetags in SVGs.
- Fix handling some ICC profiles.
- Remove color-related EXIF data when stripping ICC profile.
- (pro) Optimize saving to MP4.
- (pro) Fix saving with autoquality in some cases.
- (pro) Fix saving large images to MP4.
- Fix applying watermarks with replication.
- Add support for Managed Identity or Service Principal credentials to Azure Blob Storage integration.
- Optimize memory usage in some scenarios.
- Better SVG sanitization.
- (pro) Allow usage of floating-point numbers in the
IMGPROXY_VIDEO_THUMBNAIL_SECONDconfig and thevideo_thumbnail_secondprocessing option.
- Fix crashes in some cases when using OpenTelemetry in Amazon ECS.
- (pro) Fix saving of GIF with too small frame delay to MP4
- Add
IMGPROXY_MAX_ANIMATION_FRAME_RESOLUTIONconfig. - Add Amazon CloudWatch support.
- (pro) Add
bestresultig image format. - (pro) Add
IMGPROXY_WEBP_COMPRESSIONconfig and webp_options processing option.
- Change
IMGPROXY_FORMAT_QUALITYdefault value toavif=65. - Change
IMGPROXY_AVIF_SPEEDdefault value to8. - Change
IMGPROXY_PREFERRED_FORMATSdefault value tojpeg,png,gif. - Set
Cache-Control: no-cacheheader to the health check responses. - Allow replacing line breaks with
\ninIMGPROXY_OPEN_TELEMETRY_SERVER_CERT,IMGPROXY_OPEN_TELEMETRY_CLIENT_CERT, andIMGPROXY_OPEN_TELEMETRY_CLIENT_KEY.
- Fix 3GP video format detection.
- Add
IMGPROXY_OPEN_TELEMETRY_GRPC_INSECUREconfig. - Add
IMGPROXY_OPEN_TELEMETRY_TRACE_ID_GENERATORconfig. - (pro) Add XMP data to the
/inforesponse.
- Better XMP data stripping.
- Use parent-based OpenTelemetry sampler by default.
- Use fixed TraceIdRatioBased sampler with OpenTelemetry.
- Add
IMGPROXY_CLIENT_KEEP_ALIVE_TIMEOUTconfig. - (pro) Add disable_animation processing option.
- (pro) Add gradient processing option.
- Fix false-positive SVG detections.
- Fix possible infinite loop during SVG sanitization.
- (pro) Fix saving of GIF with variable frame delay to MP4.
- (pro) Fix the size of video thumbnails if the video has a defined sample aspect ratio.
- Add
IMGPROXY_SVG_FIX_UNSUPPORTEDconfig.
- Fix HTTP response status when OpenTelemetry support is enabled.
- (docker) Fix saving of paletted PNGs with low bit-depth.
- Add raw processing option.
- Add OpenTelemetry support.
- (pro) Add encrypted source URL support.
- (pro) Add watermark_shadow processing option.
- Try to fix some invalid source URL cases that happen because of URL normalization.
- (docker) Faster images quantization.
- (docker) Faster loading of GIF.
- Fix memory bloat in some cases.
- Fix
format_qualityusage in presets.
- Add support of 16-bit BMP.
- Add
IMGPROXY_NEW_RELIC_LABELSconfig. - Add support of JPEG files with differential Huffman coding or arithmetic coding.
- Add
IMGPROXY_PREFERRED_FORMATSconfig. - Add
IMGPROXY_REQUESTS_QUEUE_SIZEconfig. - Add
requests_in_progressandimages_in_progressmetrics. - Add queue segment/span to request traces.
- Add sending additional metrics to Datadog and
IMGPROXY_DATADOG_ENABLE_ADDITIONAL_METRICSconfig. - Add sending additional metrics to New Relic.
- Change
IMGPROXY_MAX_CLIENTSdefault value to 2048. - Allow unlimited connections when
IMGPROXY_MAX_CLIENTSis set to0. - Change
IMGPROXY_TTLdefault value to31536000(1 year). - Better errors tracking with metrics services.
- (docker) Faster and better saving of GIF.
- (docker) Faster saving of AVIF.
- (docker) Faster loading and saving of PNG.
- Fix trimming of CMYK images.
- Respond with 404 when the source image can not be found in OpenStack Object Storage.
- Respond with 404 when file wasn't found in the GCS storage.
- Add
IMGPROXY_RETURN_ATTACHMENTconfig and return_attachment processing option. - Add SVG sanitization and
IMGPROXY_SANITIZE_SVGconfig.
- Better animation detection.
- Respond with 404 when file wasn't found in the local storage.
- Fallback from AVIF to JPEG/PNG if one of the result dimensions is smaller than 16px.
- (pro) Fix some PDF pages background.
- (docker) Fix loading some HEIF images.
- Add support of RLE-encoded BMP.
- Add
IMGPROXY_ENFORCE_THUMBNAILconfig and enforce_thumbnail processing option. - Add
X-Result-WidthandX-Result-Heightto debug headers. - Add
IMGPROXY_KEEP_COPYRIGHTconfig and keep_copyright processing option.
- Use thumbnail embedded to HEIC/AVIF if its size is larger than or equal to the requested.
- Add
IMGPROXY_FALLBACK_IMAGE_TTLconfig. - (pro) Add watermark_size processing option.
- Add OpenStack Object Storage ("Swift") support.
- Add
IMGPROXY_GCS_ENDPOINTconfig.
- (pro) Don't check
Content-Lengthheader of videos.
- (pro) Fix custom watermarks on animated images.
- Fix
s3scheme status codes. - (pro) Fix saving animations to MP4.
- Write logs to STDOUT instead of STDERR.
- (pro) Fix crashes when some options are used in presets.
- Fix transparrency in loaded ICO.
- (pro) Fix video thumbnails orientation.
- Add the
IMGPROXY_MAX_REDIRECTSconfig. - (pro) Add the
IMGPROXY_SERVER_NAMEconfig. - (pro) Add the
IMGPROXY_HEALTH_CHECK_MESSAGEconfig. - Add the
IMGPROXY_HEALTH_CHECK_PATHconfig.
- Fix the
IMGPROXY_AVIF_SPEEDconfig.
- Fix support of BMP with unusual data offsets.
- (pro) Add
video_metato the/inforesponse. - Add zoom processing option.
- Add 1/2/4-bit BMP support.
- Optimized
crop.
- Fix Datadog support.
- Fix
forceresizing + rotation. - (pro) Fix
objgravity.
- Fix ETag checking when S3 is used.
- (pro) Fix object detection.
- Fix crashes in some scenarios.
- Add
IMGPROXY_ETAG_BUSTERconfig. - (pro) watermark_text processing option.
- Improved ICC profiles handling.
- Proper error message when the deprecated basic URL format is used.
- Watermark offsets can be applied to replicated watermarks.
- (pro) Fix parsing metadata of extended sequential JPEGs.
- (pro) Autoquality.
- (pro) Object detection:
objgravity type, blur_detections processing option, draw_detections processing option. - (pro) Chained pipelines
IMGPROXY_FALLBACK_IMAGE_HTTP_CODEconfig.- (pro) fallback_image_url processing option.
- expires processing option.
- skip processing processing option.
- Datadog metrics.
forceandfill-downresizing types.- min-width and min-height processing options.
- format_quality processing option.
- Add
X-Origin-WidthandX-Origin-Heightto debug headers. - Add
IMGPROXY_COOKIE_PASSTHROUGHandIMGPROXY_COOKIE_BASE_URLconfigs. - Add
client_ipto requests and responses logs.
- ETag generator & checker uses source image ETag when possible.
304 Not Modifiedresponses includesCache-Control,Expires, andVaryheaders.dprprocessing option doesn't enlarge image unlessenlargeis true.- imgproxy responds with
500HTTP code when the source image downloading error seems temporary (timeout, server error, etc). - When
IMGPROXY_FALLBACK_IMAGE_HTTP_CODEis zero, imgproxy responds with the usual HTTP code. - BMP support doesn't require ImageMagick.
- Save GIFs without ImageMagick (vips 8.12+ required).
- Fix Client Hints behavior.
Widthis physical size, so we should divide it byDPRvalue. - Fix scale-on-load in some rare cases.
- Fix the default Sentry release name.
- Fix the
healthcommand when the path prefix is set. - Escape double quotes in content disposition.
- Removed basic URL format, use advanced one instead.
- Removed
IMGPROXY_MAX_SRC_DIMENSIONconfig, useIMGPROXY_MAX_SRC_RESOLUTIONinstead. - Removed
IMGPROXY_GZIP_COMPRESSIONconfig. - Removed
IMGPROXY_MAX_GIF_FRAMESconfig, useIMGPROXY_MAX_ANIMATION_FRAMESinstead. - Removed
cropresizing type, use crop processing option instead. - Dropped old libvips (<8.10) support.
- (pro) Removed advanced GIF optimizations. All optimizations are applied by default ib both OSS and Pro versions.
- Add
X-Origin-WidthandX-Origin-Heightto debug headers. - Add
IMGPROXY_COOKIE_PASSTHROUGHandIMGPROXY_COOKIE_BASE_URLconfigs.
dprprocessing option doesn't enlarge image unlessenlargeis true.304 Not Modifiedresponses includesCache-Control,Expires, andVaryheaders.- imgproxy responds with
500HTTP code when the source image downloading error seems temporary (timeout, server error, etc). - When
IMGPROXY_FALLBACK_IMAGE_HTTP_CODEis zero, imgproxy responds with the usual HTTP code. - BMP support doesn't require ImageMagick.
- Fix Client Hints behavior.
Widthis physical size, so we should divide it byDPRvalue. - Fix scale-on-load in some rare cases.
- Fix
requests_totalcounter in Prometheus.
- (pro) Autoquality.
- (pro) Object detection:
objgravity type, blur_detections processing option, draw_detections processing option. - (pro) Chained pipelines
IMGPROXY_FALLBACK_IMAGE_HTTP_CODEconfig.- (pro) fallback_image_url processing option.
- expires processing option.
- skip processing processing option.
- Datadog metrics.
forceandfill-downresizing types.- min-width and min-height processing options.
- format_quality processing option.
- ETag generator & checker uses source image ETag when possible.
- Removed basic URL format, use advanced one instead.
- Removed
IMGPROXY_MAX_SRC_DIMENSIONconfig, useIMGPROXY_MAX_SRC_RESOLUTIONinstead. - Removed
IMGPROXY_GZIP_COMPRESSIONconfig. - Removed
IMGPROXY_MAX_GIF_FRAMESconfig, useIMGPROXY_MAX_ANIMATION_FRAMESinstead. - Removed
cropresizing type, use crop processing option instead. - Dropped old libvips (<8.8) support.
- Wildcard support in
IMGPROXY_ALLOWED_SOURCES.
- If the source URL contains the
IMGPROXY_BASE_URLprefix, it won't be added.
- (pro) Fix path prefix support in the
/infohandler.
- The basic URL format is deprecated and can be removed in future versions. Use advanced URL format instead.
- Reset DPI while stripping meta.
- Fix performance regression in ICC profile handling.
- Fix crashes while processing CMYK images without ICC profile.
- More clear downloading errors.
- Fix ICC profile handling in some cases.
- Fix handling of negative height value for BMP.
- Use magenta (ff00ff) as a transparency key in
trim.
- Fix crashes while processing some SVGs (dockerized version).
- (pro) Fix parsing HEIF/AVIF meta.
- Fix PNG quantization palette size.
- Fix parsing HEIF meta.
- Fix debig header.
- Updated dependencies in Docker.
- Fix delays and loop numbers of animated images.
- Fix scale-on-load of huge SVGs.
- (pro) Fix loading of PDFs with transparent background.
- AVIF support.
- Azure Blob Storage support.
IMGPROXY_STRIP_COLOR_PROFILEconfig and strip_color_profile processing option.IMGPROXY_FORMAT_QUALITYconfig.IMGPROXY_AUTO_ROTATEconfig and auto_rotate processing option.- rotate processing option.
widthandheightarguments of the crop processing option can be less than1that is treated by imgproxy as a relative value (a.k.a. crop by percentage).- (pro) Remove Adobe Illustrator garbage from SVGs.
- (pro) Add IPTC tags to the
/inforesponse.
- Disable scale-on-load for animated images since it causes many problems. Currently, only animated WebP is affected.
- Improved ICC profiles handling.
- (pro) Improved and optimized video thumbnails generation.
- Fix
dproption. - Fix non-strict SVG detection.
- Fix non-UTF8 SVG detection.
- Fix checking of connections in queue.
- (pro) Fix video thumbnail orientation.
- (pro) Fix EXIF fields titles in the
/inforesponse.
- Ability to skip processing of some formats. See Skip processing.
- (pro) PDF support.
- (pro) video_thumbnail_second processing option.
- (pro) page processing option.
- (pro) background_alpha processing option.
- (pro)
IMGPROXY_VIDEO_THUMBNAIL_PROBE_SIZEandIMGPROXY_VIDEO_THUMBNAIL_MAX_ANALYZE_DURATIONconfigs.
- Speed up generation of video thumbnails with large timestamps.
- Fix
paddingandextendbehaior when converting from a fromat without alpha support to one with alpha support. - Fix WebP dimension limit handling.
- (pro) Fix thumbnails generation of some videos.
- Fix ICO saving.
IMGPROXY_PROMETHEUS_NAMESPACEconfig.- strip_metadata processing option.
- (pro) Configurable unsharpening. See Unsharpening configs and unsharpening processing option.
- Better for libvips memory metrics for Prometheus.
- Docker image includes the latest versions of dependencies.
- Optimize processing of animated images.
- Fix error when requested WebP dimension exceeds the WebP dimension limit.
- Fix path parsing in some rare cases.
- Fix HEIC/HEIF header parsing bug.
- (pro)
IMGPROXY_APPLY_UNSHARPEN_MASKINGconfig is deprecated, useIMGPROXY_UNSHARPENING_MODEinstead.
- Fix and optimize processing of animated images.
- Fallback images.
- padding processing option.
- Optimized memory usage. Especially when dealing with animated images.
- Fix crashes during animated images processing.
IMGPROXY_PATH_PREFIXconfig.- (pro) Video thumbnails.
- (pro) Getting the image info.
- Improved
trimprocessing option. - Quantizr updated to 0.2.0 in Docker image.
- Replaced imagequant with Quantizr in docker image.
- Removed HEIC saving support.
- Removed JBIG compressin support in TIFF.
imgproxy -vis replaced withimgproxy version.
- Fix loadind BMP stored in ICO.
- Fix ambiguous HEIC magic bytes (MP4 videos has been detected as HEIC).
- Fix build with libvips < 8.6.
- Fix build with Go 1.14.
- Fix go module naming. Use
github.com/imgproxy/imgproxy/v2to build imgproxy from source.
IMGPROXY_NETWORKconfig. Allows to bind on Unix socket.IMGPROXY_CACHE_CONTROL_PASSTHROUGHconfig.imgproxy healthcommand.- (pro)
IMGPROXY_GIF_OPTIMIZE_FRAMES&IMGPROXY_GIF_OPTIMIZE_TRANSPARENCYconfigs andgif_optionsprocessing option. - (pro)
IMGPROXY_CUSTOM_REQUEST_HEADERS,IMGPROXY_CUSTOM_RESPONSE_HEADERS, andIMGPROXY_CUSTOM_HEADERS_SEPARATORconfigs.
- Better SVG detection.
- Fix detection of SVG starting with a comment.
trimprocessing option.IMGPROXY_STRIP_METADATAconfig.
- Fixed focus point crop calculation.
- Optimized memory usage.
- Fixed
IMGPROXY_ALLOWED_SOURCESconfig.
- Fix watermark top offset calculation.
IMGPROXY_LOG_LEVELconfig.max_bytesprocessing option.IMGPROXY_ALLOWED_SOURCESconfig.
- Docker image base is changed to Debian 10 for better stability and performance.
extendoption now supports gravity.
- Boolean processing options such as
enlargeandextendare properly parsed.1,t,TRUE,true,Trueare truthy,0,f,F,FALSE,false,Falseare falsy. All other values are treated as falsy and generate a warning message.
- Fix segfaults on watermarking in some cases
- Fix
formatoption in presets.
- Fix loading of some GIFs by using the edge version of giflib.
- TIFF and BMP support.
IMGPROXY_REPORT_DOWNLOADING_ERRORSconfig. Setting it tofalsedisables reporting of downloading errors.- SVG passthrough. When source image and requested format are SVG, image will be returned without changes.
IMGPROXY_USE_GCSconfig. When it set to true andIMGPROXY_GCS_KEYis not set, imgproxy tries to use Application Default Credentials to get access to GCS bucket.
- Reimplemented and more errors-tolerant image size parsing.
- Log only modified processing options.
- Fixed sharpening+watermarking.
- Fixed path parsing when no options is provided and image URL is Base64 encoded.
- Using
IMGPROXY_GCS_KEYwithoutIMGPROXY_USE_GCSset totrueis deprecated.
structuredandjsonlog formats. Can be set withIMGPROXY_LOG_FORMAT.
- New default log format.
- Better watermarking: image transparency doesn't affect watermarks, faster watermark scaling.
- More verbose URL parsing errors.
SO_REUSEPORTsocker option support. Can be enabled withIMGPROXY_SO_REUSEPORT.- filename option.
- Better handling if non-sRGB images.
dproption always changes the resulting size even if it leads to enlarge andenlargeis falsey.- Log to STDOUT.
- Only unexpected errors are reported to Bugsnag/Honeybadger/Sentry.
- Better Sentry support.
- GZip compression support is deprecated.
libvipsv8.8 support: better processing of animated GIFs, built-in CMYK profile, better WebP scale-on-load, etc;- Animated WebP support.
IMGPROXY_MAX_GIF_FRAMESis deprecated, useIMGPROXY_MAX_ANIMATION_FRAMES; - HEIC support;
- crop processing option.
resizing_type:cropis deprecated; - Offsets for gravity;
- Resizing type
auto. If both source and resulting dimensions have the same orientation (portrait or landscape), imgproxy will usefill. Otherwise, it will usefit; - Development errors mode. When
IMGPROXY_DEVELOPMENT_ERRORS_MODEis true, imgproxy will respond with detailed error messages. Not recommended for production because some errors may contain stack trace; IMGPROXY_KEEP_ALIVE_TIMEOUTconfig.
- Allow URL query for
/health; - Better stack trace for image processing errors;
- Send
X-Request-IDheader in response.
- Better shrink-on-load.
- Don't import common sRGB IEC61966-2.1 ICC profile unless linear colorspace is used.
- Don't fail on recursive preset usage, just ignore already used preset and log warning.
- Don't fail processing when embedded ICC profile is not compatible with the image.
- Optimized ICC import when linear colorspace usage is disabled.
- PNG quantization. Can be enabled with
IMGPROXY_PNG_QUANTIZE. Palette size can be specified withIMGPROXY_PNG_QUANTIZATION_COLORS.
- Resizing images in linear colorspace is disabled by default. Can be enabled with
IMGPROXY_USE_LINEAR_COLORSPACE;
Fixed processing of images with embedded profiles that was broken in v2.2.8.
- Resizing in linear colorspace;
IMGPROXY_DISABLE_SHRINK_ON_LOADconfig to disable shring-on-load of JPEG and WebP.
- Remove orc from Docker image (causes segfaults in some cases).
- Memory usage optimizations.
- Fix color management.
- Fix signature check when source URL is escaped.
- extend processing option.
vips_memory_bytes,vips_max_memory_bytesandvips_allocsmetrics for Prometheus.
- Fix SVG detection.
- Minor improvements.
- Simple filesystem transport withh less memory usage.
- Fix critical bug with cached C strings;
- Memory usage optimizations.
- Source file size limit.
- More memory usage optimizations.
- Optimized memory usage. Memory usage tweaks.
Varyheader is set when WebP detection, client hints or GZip compression are enabled.- Health check doesn't require
Authorizationheader anymore.
- Sentry support (thanks to @koenpunt).
- Syslog support.
- Fix detection of some kind of WebP images;
- SVG sources support.
- Memory usage optimizations.
- Proper filename in the
Content-Dispositionheader.
- Fix support for not animated GIFs.
- ICO support
- When libvips failed to save PNG, imgproxy will try to save is without embedded ICC profile.
- Fixed EXIF orientation fetching.
- Plain source URLs support.
- Serving images from Google Cloud Storage.
- Full support of GIFs including animated ones.
- Watermarks.
- New Relic metrics.
- Prometheus metrics.
- DPR option (thanks to selul).
- Cache buster option.
- Quality option.
- Support for custom Amazon S3 endpoints.
- Support for Amazon S3 versioning.
- Client hints support (thanks to selul).
- Truncated signature support (thanks to printercu).
- imgproxy uses source image format by default for the resulting image.
- Send
User-Agentheader when downloading a source image. - Proper filename in
Content-Dispositionheader in the response.
IMGPROXY_MAX_SRC_DIMENSIONis deprecated, useIMGPROXY_MAX_SRC_RESOLUTIONinstead.
- Fix URL validation when IMGPROXY_BASE_URL is used.
- Fix smart crop + blur/sharpen SIGSEGV on Alpine.
- Minor fixes.
All-You-Ever-Wanted release! 🎉
- New advanced URL format. Unleash the full power of imgproxy v2.0.
- Presets. Shorten your urls by reusing processing options.
- Serving images from Amazon S3. Thanks to @crohr, now we have a way to serve files from private S3 buckets.
- Autoconverting to WebP when supported by browser (disabled by default). Use WebP as resulting format when browser supports it.
- Gaussian blur and sharpen filters. Make your images look better than before.
- Focus point gravity. Tell imgproxy what point will be the center of the image.
- Background color. Control the color of background when converting PNG with alpha-channel to JPEG.
- Key and salt are not required anymore. When key or salt is not specified, signature checking is disabled.
- Imgproxy calcs resulting width/height automaticly when one specified as zero.
- Memory usage is optimized.
- Disable libvips cache to prevent SIGSEGV on Alpine.
- Improved ETag generation.
- Progressive JPEG and interlaced PNG support.
- Fix autorotation when image is not resized.
- CORS headers.
IMGPROXY_BASE_URLconfig.Content-Lengthheader.
- Request ID in the logs.
- Idle time does not causes timeout.
- Increased default maximum number of simultaneous active connections.