Nico Weber
19e91e5211
LibGfx: Dedupe identical tag data objects when writing ICC data
...
With this, common v4 profiles, such as embedded into jpgs by iPhones
(when configured to write jpegs) or Pixel phones, are identical to
the input when reexported :^)
2023-02-19 08:12:04 +00:00
Nico Weber
2504f2035c
LibGfx: Implement serialization of ViewingConditionsTagData
2023-02-19 08:12:04 +00:00
Nico Weber
22c0e6b60e
LibGfx: Implement serialization of MeasurementTagData
2023-02-19 00:01:44 +01:00
Nico Weber
a1de65c34f
LibGfx: Implement serialization of TextTagData
2023-02-19 00:01:44 +01:00
Nico Weber
df5dbc180f
LibGfx: Implement serialization of SignatureTagData
2023-02-19 00:01:44 +01:00
Nico Weber
3690305794
LibGfx: Implement serialization of CurveTagData
2023-02-19 00:01:44 +01:00
Nico Weber
1ca7f109a1
LibGfx: Implement serialization of CicpTagData
2023-02-19 00:01:44 +01:00
Nico Weber
fd590fe55d
LibGfx: Implement serialization of ChromaticityTagData
2023-02-19 00:01:44 +01:00
Nico Weber
ececea9a1c
LibGfx: Implement serialization of ParametricCurveTagData
...
With this, simple v4 matrix profiles using parametric curves, such as
Compact-ICC-Profiles/profiles/sRGB-v4.icc, can be completely serialized
and the serialized file can be read again by `icc` :^)
2023-02-19 00:01:44 +01:00
Nico Weber
685e2da302
LibGfx: Implement serialization of S15Fixed16ArrayTagData
2023-02-19 00:01:44 +01:00
Nico Weber
931594fce3
LibGfx: Implement serialization of XYZTagData
2023-02-19 00:01:44 +01:00
Nico Weber
eb6dccb675
LibGfx: Implement serialization of MultiLocalizedUnicodeTagData
2023-02-19 00:01:44 +01:00
Nico Weber
4e72a35398
LibGfx: Add scaffolding for writing tag data
...
This doesn't deduplicate identical TagDatas yet.
It also doesn't implement actual serialization of TagData yet.
2023-02-19 00:01:44 +01:00
Nico Weber
1457e36b79
LibGfx: Write ICC tag table
...
All offsets and sizes are set to 0 for now, so this still doesn't
produce a valid icc file. It gets closer, though.
2023-02-19 00:01:44 +01:00
Nico Weber
026d9ceaf9
LibGfx: Extract encode_header() function in ICC writing code
2023-02-19 00:01:44 +01:00
Nico Weber
8b8b7b232e
LibGfx: Add start of an ICC profile writer
...
For now, this can write the profile header.
`icc` refuses to dump its contents since the required copyrightTag,
profileDescriptionTag, and required per-device-class tags are missing,
but it looks ok in a hex editor.
2023-02-17 20:05:50 -07:00