https://bugs.kde.org/show_bug.cgi?id=338470

Halla Rempt <ha...@valdyas.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
      Latest Commit|                            |https://invent.kde.org/grap
                   |                            |hics/krita/commit/2dc3df63a
                   |                            |8ad52468afd2a8a8f1123d4c080
                   |                            |627d

--- Comment #20 from Halla Rempt <ha...@valdyas.org> ---
Git commit 2dc3df63a8ad52468afd2a8a8f1123d4c080627d by Halla Rempt, on behalf
of L. E. Segovia.
Committed on 23/08/2021 at 13:11.
Pushed by rempt into branch 'master'.

TIFF: add support for reading Photoshop layers and metadata

This commit builds upon the previous work in order to enable loading
the PSD-like layer data and metadata from the TIFFTAG_IMAGESOURCEDATA
and TIFFTAG_PHOTOSHOP fields.

Of special relevance are the following:

TIFFTAG_IMAGESOURCEDATA is a sequence of Layr/Lr16/Lr32 layer block,
followed by LMsk (which is Adobe's take on a global mask info block),
followed by Patt and Anot. As these are a byte-by-byte equivalent
of the PSD's additional layer info blocks, for TIFF I've added a logic
path that takes advantage of Lr16/32 and handles them all as additional
logic blocks safely. It must also be noted that these are globally
aligned to 4-byte boundaries, which do *not* apply to internal blocks
(see Layr), and they are also in *the endianness of the container* (this
is the reason why I added endianness handling in previous commits).

TIFFTAG_PHOTOSHOP is just a concatenation of resource blocks (as opposed
to a full resource section), but unlike the previous, it's in big endian
like its PSD sibling.

M  +31   -2    libs/psd/psd_additional_layer_info_block.cpp
M  +3    -0    libs/psd/psd_additional_layer_info_block.h
M  +1    -0    libs/psd/psd_header.cpp
M  +1    -0    libs/psd/psd_header.h
M  +2    -1    libs/psd/psd_layer_record.cpp
M  +116  -28   libs/psd/psd_layer_section.cpp
M  +4    -1    libs/psd/psd_layer_section.h
M  +121  -60   libs/psd/psd_pixel_utils.cpp
M  +13   -3    libs/psd/psd_pixel_utils.h
M  +1    -1    libs/psdutils/psd_utils.h
M  +5    -3    plugins/impex/tiff/CMakeLists.txt
M  +360  -60   plugins/impex/tiff/kis_tiff_converter.cc
M  +44   -3    plugins/impex/tiff/kis_tiff_converter.h
A  +99   -0    plugins/impex/tiff/kis_tiff_psd_layer_record.cpp     [License:
GPL(v2.0+)]
A  +53   -0    plugins/impex/tiff/kis_tiff_psd_layer_record.h     [License:
GPL(v2.0+)]
A  +276  -0    plugins/impex/tiff/kis_tiff_psd_resource_record.cpp    
[License: GPL(v2.0+)]
A  +170  -0    plugins/impex/tiff/kis_tiff_psd_resource_record.h     [License:
GPL(v2.0+)]

https://invent.kde.org/graphics/krita/commit/2dc3df63a8ad52468afd2a8a8f1123d4c080627d

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to