From 7529294845de19a0ecf787b55a7939ba8ce04d75 Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Thu, 21 Sep 2023 15:19:21 +0200 Subject: [PATCH] fix: uninterlace only interlaced png --- app/controllers/concerns/uninterlace_png_concern.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/uninterlace_png_concern.rb b/app/controllers/concerns/uninterlace_png_concern.rb index c56c91725..8e9d06251 100644 --- a/app/controllers/concerns/uninterlace_png_concern.rb +++ b/app/controllers/concerns/uninterlace_png_concern.rb @@ -4,11 +4,16 @@ module UninterlacePngConcern private def uninterlace_png(uploaded_file) - if uploaded_file&.content_type == 'image/png' + if uploaded_file&.content_type == 'image/png' && interlaced?(uploaded_file.tempfile.to_path) chunky_img = ChunkyPNG::Image.from_io(uploaded_file.to_io) chunky_img.save(uploaded_file.tempfile.to_path, interlace: false) uploaded_file.tempfile.reopen(uploaded_file.tempfile.to_path, 'rb') end uploaded_file end + + def interlaced?(png_path) + png = MiniMagick::Image.open(png_path) + png.data["interlace"] != "None" + end end