From b173a52cf46788a608e9874de349a7e06d5935df Mon Sep 17 00:00:00 2001 From: Untone Date: Wed, 13 Nov 2024 09:00:11 +0300 Subject: [PATCH] convert-jpeg --- Dockerfile | 3 +++ src/handlers/proxy.rs | 11 ++++++++--- src/thumbnail.rs | 9 +++------ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9a30c5e..6859204 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,8 @@ FROM rust AS build +RUN uname -a +RUN cat /etc/os-release # print ubuntu version + # had to add this for open-ssl RUN apt-get update -y && \ apt-get install -y git pkg-config make g++ libssl-dev wget \ diff --git a/src/handlers/proxy.rs b/src/handlers/proxy.rs index eca6024..9b75e7d 100644 --- a/src/handlers/proxy.rs +++ b/src/handlers/proxy.rs @@ -35,9 +35,14 @@ pub async fn proxy_handler( "png" => "image/png", "webp" => "image/webp", "gif" => "image/gif", - "jfif" => "image/jpeg", - "heic" | "heif" => "image/heic", - "tif" | "tiff" => "image/tiff", + "heic" | "heif" | "tiff" | "tif" => { + // Для HEIC и TIFF файлов мы всё равно будем отдавать оригинальный content-type, + // но при сохранении миниатюр они будут конвертированы в JPEG + match ext.as_str() { + "heic" | "heif" => "image/heic", + _ => "image/tiff" + } + }, "mp3" => "audio/mpeg", "wav" => "audio/x-wav", "ogg" => "audio/ogg", diff --git a/src/thumbnail.rs b/src/thumbnail.rs index 0883a1c..291822c 100644 --- a/src/thumbnail.rs +++ b/src/thumbnail.rs @@ -103,12 +103,9 @@ fn determine_image_format(extension: &str) -> Result Ok(ImageFormat::Jpeg), "png" => Ok(ImageFormat::Png), "gif" => Ok(ImageFormat::Gif), - "bmp" => Ok(ImageFormat::Bmp), - "ico" => Ok(ImageFormat::Ico), - "tiff" | "tif" => Ok(ImageFormat::Tiff), "webp" => Ok(ImageFormat::WebP), - "heic" | "heif" => { - // Для HEIC мы будем конвертировать в JPEG при сохранении + "heic" | "heif" | "tiff" | "tif" => { + // Конвертируем HEIC и TIFF в JPEG при сохранении Ok(ImageFormat::Jpeg) }, _ => { @@ -135,7 +132,7 @@ pub async fn thumbdata_save( // Определяем выходной формат let output_ext = match ext.as_str() { - "heic" | "heif" => "jpg", // Конвертируем HEIC в JPEG + "heic" | "heif" | "tiff" | "tif" => "jpg", // Конвертируем HEIC и TIFF в JPEG _ => &ext };