Mirco Miranda
6f44c5c52a
PSD: Improve alpha detection
...
BUG: 182496
2022-07-25 19:34:57 +00:00
Mirco Miranda
d030c75925
PSD: LAB support
...
LAB images support:
- Added LAB 8/16-bits support by converting them to sRGB
- The conversion are done using literature formulas (LAB -> XYZ -> sRGB): [sRGB on Wiki](https://en.wikipedia.org/wiki/SRGB ), [LAB on wiki](https://en.wikipedia.org/wiki/CIELAB_color_space )
- Removed unused code
2022-07-06 21:30:23 +00:00
Mirco Miranda
b0a0bb1294
PSD header checks according to specifications
2022-06-30 06:56:21 +00:00
Mirco Miranda
3d5090593c
Improved detection of alpha channel on CMYK images
2022-06-30 06:56:21 +00:00
Mirco Miranda
d4966d169b
Minor code optimization
2022-06-30 06:56:21 +00:00
Mirco Miranda
bf52896347
Minor code improvements (tested on all my MCYK PSD/PSB files)
2022-06-30 06:56:21 +00:00
Mirco Miranda
c52ffa2227
Fix Alpha + testcase images
2022-06-30 06:56:21 +00:00
Mirco Miranda
e4e386babf
Fix regression
2022-06-30 06:56:21 +00:00
Mirco Miranda
b47a9d7022
Basic support to CMYK 8/16 bits (not fully tested)
2022-06-30 06:56:21 +00:00
Adrian Bunk
2a84dd677d
psd: Fix segfault on architectures where char is unsigned (like ARM)
2022-05-27 12:26:56 +03:00
Mirco Miranda
f8a251e268
Support to QImageIOHandler::Size option
2022-04-28 08:52:18 +02:00
Mirco Miranda
52134fc2e9
QByteArray resize removal
...
- Removed QByteArray resize with potentially large numbers as in merge request !66
2022-04-14 23:04:58 +00:00
Albert Astals Cid
343954ca98
psd: Fix crash on broken files
...
Instead of resizing the bytearray to the potential size and then reading
into it, ask the device to read into a bytearray, this way instead of a
crash because we're trying to resize to a too big number we get a nice
maxSize argument exceeds QByteArray size limit
warning
oss-fuzz/46664
2022-04-13 23:07:22 +02:00
Mirco Miranda
44fd6b7bc0
psd: duotone read
...
- New format added: Duotone
- Fix float to int conversion round issue
2022-04-11 21:07:23 +00:00
Albert Astals Cid
c8a0806aab
psd: Don't crash with broken images
...
Found by oss-fuzz but still with an unfiled bug number
2022-04-10 12:19:52 +02:00
Albert Astals Cid
bb475dedd1
psd: Header depth has to be 8 for CM_INDEXED color_mode
...
As suggested by Mirco Miranda
2022-04-07 23:50:15 +02:00
Albert Astals Cid
9e28aae868
psd: Protect against broken images
...
If you have an image that says it's Mono but has 16 as header.depth we
end up doing invalid memory accesses
oss-fuzz/46437
2022-04-07 21:46:08 +00:00
Albert Astals Cid
5c47a97b79
psd: Don't abort on broken images
...
oss-fuzz/46418
2022-04-06 22:58:31 +00:00
Albert Astals Cid
384f78a13c
psd: Don't assert on broken files
...
oss-fuzz/46407
2022-04-06 00:16:38 +02:00
Mirco Miranda
98f19c60ae
PSD: Performance improvements and support to missing common formats
...
- Supersedes merge request !55 (PSB support, XMP metadata, ICC color profile, image resolution read)
- Performance improvements: 5 time faster than previous version (tested on a 3.9GB PSB: 9sec instead 47sec)
- New formats support added: INDEXED (8bps), BITMAP (1bps), GRAYSCALE (8, 16, 32bps), RGB (32bps)
- Should fix Bug https://bugs.kde.org/show_bug.cgi?id=397610
- Fix Bug https://bugs.kde.org/show_bug.cgi?id=428238
2022-04-04 17:22:45 +00:00
Ahmad Samir
1169859b07
Run clang-format on all cpp/h files
...
NO_CHANGELOG
2021-03-08 20:15:33 +02:00
Ahmad Samir
e3ab850712
Add a trailing comma to enum
...
Should help produce better diffs and clang-format won't squash the enum
on one line.
GIT_SILENT
2021-03-08 20:14:42 +02:00
Gary Wang
938b8126b5
No longer descease color depth to 8 for 16 bit uncompressed PSD files
2020-11-10 13:03:37 +08:00
Chris Xiong
5825c83235
Add support for RLE-compressed, 16 bits per channel PSD files.
2020-11-06 15:02:29 +08:00
Gary Wang
b742cb7cc7
Return unsupported when reading 16bit RLE compressed PSD files
2020-11-01 11:50:48 +08:00
Gary Wang
2e6eeebdfc
feat: add psd color depth == 16 format support
2020-10-30 21:47:12 +08:00
Andreas Cord-Landwehr
f4281984c1
Adapt license to LGPL-2.0-or-later
...
According to relicensecheck Brad is OK with changing LGPLv2 to LGPLv2+,
which is required to be compatible with the LGPL-2.1-or-later licensed
source files.
2020-07-21 09:26:47 +00:00
Martin T. H. Sandsmark
8562ce18f1
Add some sanity and bounds checking
...
Since QImage does sanity checking for overflows and stuff wrt.
dimensions and depth, check for QImage::isNull() as early as possible to
see if there's some funky business going on.
Also tried to add some checks wherever we wrote to "raw" memory.
Unit tests pass, and tested converting some files from
https://samples.ffmpeg.org/image-samples/ to pngs, and that seemed to
work.
Reviewed By: aacid
Differential Revision: https://phabricator.kde.org/D24367
2020-05-10 18:06:56 +02:00
Albert Astals Cid
ac725cca68
psd: Fix crash on fuzzed file
...
oss-fuzz/12752
2019-01-29 10:53:30 +01:00
Yuri Chornoivan
8ac949d459
Fix minor EBN issues
2018-10-22 19:58:24 +03:00
Martin Koller
7f2c44add4
Use brace-initializer instead of nullptr in returning 0-QFlags
...
Differential Revision: https://phabricator.kde.org/D9182
2017-12-05 19:34:30 +01:00
Kevin Funk
740fe5df0e
Use nullptr everywhere
...
Differential Revision: https://phabricator.kde.org/D3987
2017-01-16 09:44:17 +01:00
Pino Toscano
172c494cff
remove extra ';'
2016-06-09 10:57:48 +02:00
Alex Merry
47e8043d45
Make PSD image reader endianess-agnostic.
...
By using the same strategy as the SoftImage PIC handler (and sharing
some code with it), we should avoid reading the image data incorrectly
on big-endian architectures.
REVIEW: 122650
BUG: 337918
2015-02-20 23:03:10 +00:00
Alex Merry
c9ca1f1862
Rename headers to end with _p.h
...
Frameworks have a convention of naming uninstalled headers in src/ with
a _p at the end of the name, to make it clear they are not part of the
API. None of the headers in KImageFormats are installed, so it is not
really necessary to follow this convention, but we follow it anyway for
the benefit of both humans and tools (like kapidox).
2014-08-03 18:08:49 +01:00
David Faure
02b5e97197
Code reformatted using kde-dev-scripts/astyle-kdelibs.
...
Use git blame -w 47df948 to show authorship as it was before this commit.
2013-12-18 09:54:11 +01:00
Jenkins CI
47df9483fd
Move kimageformats code to the root directory.
2013-12-18 00:45:18 +00:00