Commit graph

198 commits

Author SHA1 Message Date
Ivailo Monev
4bd5d6b609 kimgio: cast the character to uchar and return EOF on error from RAWDataStream::get_char()
note that LibRaw_buffer_datastream returns -1 if the position is
out-of-bounds but https://www.gnu.org/software/libc/manual/html_node/EOF-and-Errors.html
claims that EOF may not be -1

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 08:33:14 +03:00
Ivailo Monev
37217b7fe7 kimgio: warn if seeking fails in RAWDataStream::seek()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-25 18:53:56 +03:00
Ivailo Monev
59f42738c2 kimgio: const-ify RAWDataStream member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-25 02:30:43 +03:00
Ivailo Monev
5c9b183447 kimgio: use custom datastream class in raw plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-25 03:12:45 +03:00
Ivailo Monev
bb183aa63d kimgio: use TJPF_ARGB as pixel format in jpg plugin when the host is big-endian
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 23:02:04 +03:00
Ivailo Monev
bb976aeff7 kimgio: theoretical big-endian support for ICO format
there is a lot of code that is not big-endian tested (not just in the
ico plugin)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 22:45:45 +03:00
Ivailo Monev
117e0dc301 kimgio: set the output image to default constructed if decoding fails in WebPHandler::read()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 05:52:51 +03:00
Ivailo Monev
a740c59e2e kimgio: always use QImage::Format_ARGB32 as format when reading WebP image
QImage::Format_RGB32 has a (unused) alpha channel

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 01:43:33 +03:00
Ivailo Monev
3f362d7467 kimgio: remove AUTHORS file
nothing left from the other guys

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 00:22:01 +03:00
Ivailo Monev
fe342fa103 kimgio: simplify WebP image writing
the last piece of code not written by me in the file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 00:17:31 +03:00
Ivailo Monev
1b0dcc4f10 kimgio: simplify data copying in ico plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 23:54:28 +03:00
Ivailo Monev
2ded74ccc3 kimgio: decompress image directly into the QImage allocated memory from jpg plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 23:39:54 +03:00
Ivailo Monev
148a4833fe kimgio: better variable name in ico source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-20 00:35:26 +03:00
Ivailo Monev
b6871679b2 kimgio: remove redundant data size check in ICOHandler::canRead()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 19:47:28 +03:00
Ivailo Monev
9526e164cb kimgio: hardcode RAW image MIME types
the plugin is heavy on I/O already because LibRaw requires the whole file
data to determine if it can open it or not so this will reduce that a bit
at the cost of (possibly) requiring update in the future

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 19:33:26 +03:00
Ivailo Monev
9599463984 kimgio: print warning message via kWarning() from WebPHandler::canRead()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 17:51:09 +03:00
Ivailo Monev
bd60038328 kimgio: ICO writing correction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 15:01:13 +03:00
Ivailo Monev
081ab70b04 kimgio: ICO image format write support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 14:58:37 +03:00
Ivailo Monev
d2bb45bb33 kimgio: update plugins read/write support info
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 01:40:28 +03:00
Ivailo Monev
ec505df46a kutils: allocate less space for headers in KCompressor::process()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 23:06:52 +03:00
Ivailo Monev
637849870f kimgio: remove TODO for ico plugin
the plugin is there mostly for websites favicon support which are either
PNG or 32 bits per-pixel by now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 22:37:38 +03:00
Ivailo Monev
2c331e098e kimgio: add comment about the debug message in ico source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 20:59:37 +03:00
Ivailo Monev
87213caeb1 kimgio: implement 24-bit BMP image loading for ico plugin and ensure the image data size is valid
fixes crash in case the BMP image data includes padding

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 19:53:09 +03:00
Ivailo Monev
a9b2122f90 kimgio: mark some branches as unlikely in webp plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 17:38:18 +03:00
Ivailo Monev
af2e07337c kimgio: read-only WebP animations support
NOTE: gwenview does not support saving (writing) animated images

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 17:30:54 +03:00
Ivailo Monev
f86b5229e7 kimgio: warn when something goes wrong in webp plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 15:30:04 +03:00
Ivailo Monev
92ec388650 kimio: rename ICOType enums for consistency
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-14 16:15:21 +03:00
Ivailo Monev
92b495b19a kimgio: implement quality option for jpg plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 15:09:58 +03:00
Ivailo Monev
95331f0c56 kimgio: implement JPEG writing
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 15:01:45 +03:00
Ivailo Monev
aadf9d5164 kimgio: rename jpeg plugin to jpg to match the more common extension
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 14:28:59 +03:00
Ivailo Monev
cd7d01a484 kimgio: take the format as hint only and probe the device if format does not match
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 14:18:29 +03:00
Ivailo Monev
2ce7ac3843 kimgio: check if the KMimeType pointer is still valid in RAWPlugin::mimeTypes()
can be invalidated during sycoca database update, fixes possible crash

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 13:41:40 +03:00
Ivailo Monev
59e28bfa08 Revert "kimgio: ICO image reading optimization"
This reverts commit 5f1bde04b6.
2022-10-13 12:32:54 +03:00
Ivailo Monev
5f1bde04b6 kimgio: ICO image reading optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 05:08:23 +03:00
Ivailo Monev
2546fb4596 kimgio: bail if invalid ICO is not in the norms
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 05:07:32 +03:00
Ivailo Monev
840491cda0 kimgio: claim support for image/x-jp2-codestream MIME type in jp2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 07:38:38 +03:00
Ivailo Monev
e6b0f87542 kimgio: minor corrections
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 07:36:30 +03:00
Ivailo Monev
13b5deb7fa kimgio: peek to figure out the codec to use in jp2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 04:16:48 +03:00
Ivailo Monev
50e343d45b kimgio: check for non-RFC 3745 header from jp2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 03:58:53 +03:00
Ivailo Monev
7f09363d21 kimgio: abort reading if opj_setup_decoder(), opj_decode() or opj_end_decompress() returns false
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 03:55:40 +03:00
Ivailo Monev
565ad4785b kimgio: branches optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 03:14:57 +03:00
Ivailo Monev
eec59d05e2 kimgio: seek to the correct position after PNG check in ico plugin
fixes loading of ICO with multiple images

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 02:06:16 +03:00
Ivailo Monev
0f8c25590b kimgio: ensure the allocations in ico plugin are not too big
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 01:44:28 +03:00
Ivailo Monev
cdebdf579f kimgio: check for more ICO header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 01:29:13 +03:00
Ivailo Monev
dd5d380a3f kimgio: check if the BMP image compression is supported in ico plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 01:21:54 +03:00
Ivailo Monev
3fd4682cf8 Merge branch 'master' of https://scm.osdn.net/gitroot/kde/kdelibs 2022-10-12 23:25:16 +03:00
Ivailo Monev
2aa9fad079 kimgio: claim support for all MIME types that are sub-class of image/x-dcraw in raw plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-13 01:20:56 +03:00
Ivailo Monev
964e2c0ed3 kimgio: use memcmp() instead of qstrncmp() for headers comparison
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-12 23:25:00 +03:00
Ivailo Monev
8cb5d4a739 kimgio: check for one more ICO header from ico plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-12 21:24:03 +03:00
Ivailo Monev
56dfaf677b kimgio: remove magick plugin
none of the formats it supports are used by the Katana and the GIF
coder is very broken

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-12 20:05:46 +03:00