From fb5078836e1cc9e55bd971df442519a359a13f49 Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 6 Sep 2021 20:20:11 -0500 Subject: [PATCH] Fix #4612: Input profile error with greyscale jpg images. Fix a bug where generating thumbnails failed for certain images when using libvips 8.10. Specifically, it failed for single-channel greyscale images and four-channel CMYK images without an embedded color profile. In these cases we specified an sRGB fallback profile, but under libvips 8.10 this failed because the sRGB profile was incompatible with single-channel and four-channel images. Before libvips 8.10 this worked, but as of 8.10 it's a hard error. The way libvips handles fallback color profiles differs across versions, so we have to use different arguments for different versions. In 8.7, vips doesn't have builtin color profiles, so we have to specify our own manually. In 8.9, it has builtin profiles, so we can omit the import profile, but we're still required to set the export profile to sRGB, otherwise it will leave CMYK images as CMYK when generating thumbnails. In 8.10, we have to _not_ to set the import or export profile to sRGB, otherwise it will fail with an incompatible profile error when it tries to convert CMYK images to RGB. The builtin sRGB profile used by libvips[1] is different than the one we used previously[2]. The builtin one comes from LCMS[3], whereas ours came from ArgyllCMS.[4] Not all sRGB profiles are created the same[5], so this may result in some imperceptible differences in thumbnail output. The ArgyllCMS profile was used before because it seemed to be the best one[6], but realistically it probably doesn't matter. 1: https://github.com/libvips/libvips/blob/v8.10.6/libvips/colour/profiles/sRGB.icm 2: https://github.com/danbooru/danbooru/blob/906eec190d45d58941f83f5ec8165ddeba205317/config/sRGB.icm 3: https://www.littlecms.com/ 4: https://www.argyllcms.com/ 5: https://ninedegreesbelow.com/photography/srgb-profile-comparison.html 6: https://ninedegreesbelow.com/photography/srgb-profile-comparison.html#addendum --- app/logical/media_file/image.rb | 17 +++++++++++++--- test/files/test-cmyk-no-profile.jpg | Bin 0 -> 30550 bytes test/files/test-grey-no-profile.jpg | Bin 0 -> 9895 bytes test/unit/media_file_test.rb | 30 ++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 test/files/test-cmyk-no-profile.jpg create mode 100644 test/files/test-grey-no-profile.jpg diff --git a/app/logical/media_file/image.rb b/app/logical/media_file/image.rb index cb0b75e9d..21a772f2b 100644 --- a/app/logical/media_file/image.rb +++ b/app/logical/media_file/image.rb @@ -10,9 +10,12 @@ class MediaFile::Image < MediaFile JPEG_OPTIONS = { Q: 90, background: 255, strip: true, interlace: true, optimize_coding: true } # http://jcupitt.github.io/libvips/API/current/libvips-resample.html#vips-thumbnail - if Vips.at_least_libvips?(8, 8) - THUMBNAIL_OPTIONS = { size: :down, linear: false, no_rotate: true, export_profile: SRGB_PROFILE, import_profile: SRGB_PROFILE } - CROP_OPTIONS = { crop: :attention, linear: false, no_rotate: true, export_profile: SRGB_PROFILE, import_profile: SRGB_PROFILE } + if Vips.at_least_libvips?(8, 10) + THUMBNAIL_OPTIONS = { size: :down, linear: false, no_rotate: true } + CROP_OPTIONS = { crop: :attention, linear: false, no_rotate: true } + elsif Vips.at_least_libvips?(8, 8) + THUMBNAIL_OPTIONS = { size: :down, linear: false, no_rotate: true, export_profile: "srgb" } + CROP_OPTIONS = { crop: :attention, linear: false, no_rotate: true, export_profile: "srgb" } else THUMBNAIL_OPTIONS = { size: :down, linear: false, auto_rotate: false, export_profile: SRGB_PROFILE, import_profile: SRGB_PROFILE } CROP_OPTIONS = { crop: :attention, linear: false, auto_rotate: false, export_profile: SRGB_PROFILE, import_profile: SRGB_PROFILE } @@ -35,6 +38,14 @@ class MediaFile::Image < MediaFile is_animated_gif? || is_animated_png? end + def channels + image.bands + end + + def colorspace + image.interpretation + end + # @see https://github.com/jcupitt/libvips/wiki/HOWTO----Image-shrinking # @see http://jcupitt.github.io/libvips/API/current/Using-vipsthumbnail.md.html def preview(width, height) diff --git a/test/files/test-cmyk-no-profile.jpg b/test/files/test-cmyk-no-profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9609986e0380c1813e13f000a2fb940640c18b4 GIT binary patch literal 30550 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�wpur0TkEi!q-A`QMkwIkAnXO~v- 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%0ALJ&3e?7pXj7NT)+@_DpKXqWPLYT zvra_K;pwR4ZvM)>VUcrM{JN97>uS0> zCmRRN6B5l#nqhWP=U4WzQ=XHGLtDeP6+O0eb9?Qr6|sHSzGTVD4J$3L=N;)*UE1ul zGi&3??JTa& z{Bj32_-y}mg5mFqDN_%fVhNO=_d&9#f9)!5fwb4v^U4+7Gz4bZy^B&6G}rj&;kqn2 zRiBytg5{M}W3+_;9|qaz`($wp5bdUQAAsP zl2-HV?uPH%RzKnV+I9PmrUBDFkEPyG+YZm|lRPkiDN)+`m|t zD>Z@~HKO`X2-&r12(q{eN-X18Y9gU8Y7lbbtGh_%!u3mCE}fk!u%OABdvdUKUflNi zIX5mu+1yIFb;7W#t$^K%sisrRI*@6$9YgxNcVD+@R0!{`(<+gAcH!{n2T58p=UiF8 zi>Zq*!eVhw>Qn2dGJ?h-5t~I69%+1h#=G=XN`eeS31Z zV&X+1&i@QqA2)yOsHiGeC^2KM|CIDtqdJ{`!4l>Z%QfpK_51jqz9U?@dhBd%4-ife`r`fS(@~P zvq@?J*V0!XN_-4!59c);uyAW|y0bDrU-uV-eKY^%**?}{$+g$+UvT)g;-YM~#Jv@d z944__ZniA_&#-ZQcLVRAk2gLpdbqvlc9Wabu_?-v;!g?pT%5|MYdiVXqLYqnO~#X4 zJojty&ze(aFMLg*ddjh52f4kbc4>6^a}_1zIBYPStmhsOBE=Zepzka9)uHTIS;E~kOU>N;VVKuVr4`XHIYTx+$Z*KI!u`EGZss&*o2G=$ zfU}K`(GTT>#SROE&WiKUkYHYTGoj->x1r6WtoQCOUg~d~q5I&4hO0)Pii_t|?RWf2 zt6MM5^Re68=p4o?W;ahT%ly_mjpw31U-`}Wa*S*K9g{w`GBqna8thJ9PNABqQ=6fwxbtMk!0^A%NYh2xx7R6;uXEeW$At@eAo{vmK znKV;{+X}K651*LA8o+e*0N>RQ0+wHs!q+^T?Z74ZD%gzUj$*rbZ2cDId4Wus4FeEbJYhEX#uXySDcgYdspn#IG^rh5g*7d?q_|eBg<$p|AfgG6V57X z=TBvHd}YFu9rS3%+X1@{{^9`QSn z#KNlb;|PF{%Do2@Pg;<3LLBgE`gdIKIh`IN-nBix_7Qg nlvjFU!F9(O)k*&uZgnIEPR*X`dE(f8{uR7}{~5UV|Gx