Compare commits
2 Commits
5abf6a719f
...
68e786b4e8
Author | SHA1 | Date | |
---|---|---|---|
68e786b4e8 | |||
9a1396b91f |
21
fiv-io.c
21
fiv-io.c
@ -27,20 +27,22 @@
|
||||
#include <webp/encode.h>
|
||||
#include <webp/mux.h>
|
||||
|
||||
// Colour management must be handled before RGB conversions.
|
||||
#ifdef HAVE_LCMS2
|
||||
#include <lcms2.h>
|
||||
#endif // HAVE_LCMS2
|
||||
|
||||
#ifdef HAVE_JPEG_QS
|
||||
#include <jpeglib.h>
|
||||
#include <setjmp.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <jpeglib.h>
|
||||
// This library is tricky to build, simply make it work at all.
|
||||
#define NO_SIMD
|
||||
#include <jpeg-quantsmooth/quantsmooth.h>
|
||||
#undef NO_SIMD
|
||||
#endif // HAVE_JPEG_QS
|
||||
|
||||
// Colour management must be handled before RGB conversions.
|
||||
#ifdef HAVE_LCMS2
|
||||
#include <lcms2.h>
|
||||
#endif // HAVE_LCMS2
|
||||
|
||||
#ifdef HAVE_LIBRAW
|
||||
#include <libraw.h>
|
||||
#endif // HAVE_LIBRAW
|
||||
@ -265,6 +267,7 @@ static void
|
||||
trivial_cmyk_to_host_byte_order_argb(unsigned char *p, int len)
|
||||
{
|
||||
// This CMYK handling has been seen in gdk-pixbuf/JPEG, GIMP/JPEG, skcms.
|
||||
// It will typically produce horribly oversaturated results.
|
||||
// Assume that all YCCK/CMYK JPEG files use inverted CMYK, as Photoshop
|
||||
// does, see https://bugzilla.gnome.org/show_bug.cgi?id=618096
|
||||
while (len--) {
|
||||
@ -1055,6 +1058,10 @@ static cairo_surface_t *
|
||||
open_libjpeg_turbo(
|
||||
const gchar *data, gsize len, FivIoProfile profile, GError **error)
|
||||
{
|
||||
// Note that there doesn't seem to be much of a point in using this
|
||||
// simplified API anymore, because JPEG-QS needs the original libjpeg API.
|
||||
// It's just more or less duplicated code which won't compile with
|
||||
// the slow version of the library.
|
||||
tjhandle dec = tjInitDecompress();
|
||||
if (!dec) {
|
||||
set_error(error, tjGetErrorStr2(dec));
|
||||
@ -2325,7 +2332,7 @@ fiv_io_open(
|
||||
|
||||
cairo_surface_t *surface =
|
||||
fiv_io_open_from_data(data, len, uri, profile, enhance, error);
|
||||
free(data);
|
||||
g_free(data);
|
||||
return surface;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user