[babl] babl: detect sRGB profiles from matrix
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] babl: detect sRGB profiles from matrix
- Date: Sat, 2 Sep 2017 23:04:42 +0000 (UTC)
commit 3060252e660c679163e72f971e5fa181bad766df
Author: Øyvind Kolås <pippin gimp org>
Date: Sun Sep 3 01:00:49 2017 +0200
babl: detect sRGB profiles from matrix
When TRCs also are matching, return internal sRGB instead of creating a
duplicate.
babl/babl-icc.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/babl/babl-icc.c b/babl/babl-icc.c
index 07ec1e7..a79f21b 100644
--- a/babl/babl-icc.c
+++ b/babl/babl-icc.c
@@ -756,7 +756,22 @@ babl_space_from_icc (const char *icc_data,
wY = icc_read (s15f16, offset + 8 + 4);
wZ = icc_read (s15f16, offset + 8 + 4 * 2);
- babl_free (state);
+ if (trc_red == babl_trc ("sRGB") &&
+ trc_green == babl_trc ("sRGB") &&
+ trc_blue == babl_trc ("sRGB") &&
+ fabs(rx - 0.436042) < 0.001 &&
+ fabs(ry - 0.222492) < 0.001 &&
+ fabs(rz - 0.013916) < 0.001 &&
+ fabs(gx - 0.385122) < 0.001 &&
+ fabs(gy - 0.716915) < 0.001 &&
+ fabs(gz - 0.097063) < 0.001 &&
+ fabs(bx - 0.143053) < 0.001 &&
+ fabs(by - 0.060609) < 0.001 &&
+ fabs(bz - 0.713939) < 0.001)
+ {
+ babl_free (state);
+ return babl_space ("sRGB");
+ }
{
Babl *ret = (void*)babl_space_from_rgbxyz_matrix (NULL,
@@ -767,6 +782,8 @@ babl_space_from_icc (const char *icc_data,
trc_red, trc_green, trc_blue);
ret->space.description = descr;
ret->space.copyright = copyright;
+
+ babl_free (state);
return ret;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]