Don't use YCbCr if we need to draw an info box; ImageMagick is too broken
authorSteinar H. Gunderson <sesse@debian.org>
Mon, 28 Jan 2008 02:54:52 +0000 (03:54 +0100)
committerSteinar H. Gunderson <sesse@debian.org>
Mon, 28 Jan 2008 02:54:52 +0000 (03:54 +0100)
for that (stuff drawn with "white" in YCbCr gets pink, and even working around
that, Freetype antialiasing in YCbCr is broken).

perl/Sesse/pr0n/Common.pm

index 000b3511464291baa52f76c35195bdd6b58da21b..8ae68396e4c7795a4f412cbff55a5106783f47e6 100644 (file)
@@ -403,9 +403,13 @@ sub ensure_cached {
                } else {
                        # We always want YCbCr JPEGs. Setting this explicitly here instead of using
                        # RGB is slightly faster (no colorspace conversion needed) and works equally
-                       # well for our uses. (Ideally we'd be able to keep the image subsampled and
+                       # well for our uses, as long as we don't need to draw an information box,
+                       # which trickles several ImageMagick bugs related to colorspace handling.
+                       # (Ideally we'd be able to keep the image subsampled and
                        # planar, but that would probably be difficult for ImageMagick to expose.)
-                       $magick->Set(colorspace=>'YCbCr');
+                       if (!$infobox) {
+                               $magick->Set(colorspace=>'YCbCr');
+                       }
                        $err = $magick->Read($fname);
                }