Revert "Revert "Add support for writing icc profiles to the jpeg encoder""
This reverts commit dda14b9b7ac13dba9214f484fc6270b3ccf4b68b.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Revert "Add support for writing icc profiles to the jpeg encoder"
>
> This reverts commit 4ef01482025e2e629e35458aa214436d3b4138e8.
>
> Reason for revert: This breaks the android autoroller.
>
> Original change's description:
> > Add support for writing icc profiles to the jpeg encoder
> >
> > Also, share the impl for skjpeg_error_mgr between the
> > jpeg decoder and encoder. They are already identical
> > anyway.
> >
> > BUG=skia:
> >
> > Change-Id: I4d67f28126388fef3057d62b6e0b203e21ed4afb
> > Reviewed-on: https://skia-review.googlesource.com/10011
> > Reviewed-by: Leon Scroggins <scroggo@google.com>
> > Commit-Queue: Matt Sarett <msarett@google.com>
> >
>
> TBR=msarett@google.com,scroggo@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Change-Id: Idbb9918370e8384e39d6b7d1c3bcd9545ce4cfd1
> Reviewed-on: https://skia-review.googlesource.com/10017
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Derek Sollenberger <djsollen@google.com>
>
TBR=djsollen@google.com,msarett@google.com,scroggo@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Change-Id: I9c1df3f497a9187ac017e464976fd8f0333bad0e
Reviewed-on: https://skia-review.googlesource.com/10030
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
diff --git a/src/images/SkPNGImageEncoder.cpp b/src/images/SkPNGImageEncoder.cpp
index 2eac91d..e28ae12 100644
--- a/src/images/SkPNGImageEncoder.cpp
+++ b/src/images/SkPNGImageEncoder.cpp
@@ -12,14 +12,13 @@
#include "SkColor.h"
#include "SkColorPriv.h"
#include "SkDither.h"
-#include "SkICC.h"
+#include "SkImageEncoderFns.h"
#include "SkMath.h"
#include "SkStream.h"
#include "SkString.h"
#include "SkTemplates.h"
#include "SkUnPreMultiply.h"
#include "SkUtils.h"
-#include "transform_scanline.h"
#include "png.h"
@@ -40,9 +39,7 @@
}
}
-static void set_icc(png_structp png_ptr, png_infop info_ptr, const SkColorSpaceTransferFn& fn,
- const SkMatrix44& toXYZD50) {
- sk_sp<SkData> icc = SkICC::WriteToICC(fn, toXYZD50);
+static void set_icc(png_structp png_ptr, png_infop info_ptr, sk_sp<SkData> icc) {
#if PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5)
const char* name = "Skia";
png_const_bytep iccPtr = icc->bytes();
@@ -351,17 +348,14 @@
}
if (pixmap.colorSpace()) {
- SkColorSpaceTransferFn fn;
- SkMatrix44 toXYZD50(SkMatrix44::kUninitialized_Constructor);
if (pixmap.colorSpace()->isSRGB()) {
png_set_sRGB(png_ptr, info_ptr, PNG_sRGB_INTENT_PERCEPTUAL);
- } else if (pixmap.colorSpace()->isNumericalTransferFn(&fn) &&
- pixmap.colorSpace()->toXYZD50(&toXYZD50))
- {
- set_icc(png_ptr, info_ptr, fn, toXYZD50);
+ } else {
+ sk_sp<SkData> icc = icc_from_color_space(*pixmap.colorSpace());
+ if (icc) {
+ set_icc(png_ptr, info_ptr, std::move(icc));
+ }
}
-
- // TODO: Should we support writing ICC profiles for additional color spaces?
}
png_set_sBIT(png_ptr, info_ptr, &sig_bit);