Commit graph

163 commits

Author SHA1 Message Date
Ivailo Monev
772e88b926 kimgio: rename variable for consistency
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 14:43:07 +02:00
Ivailo Monev
8e5dd5ea50 generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-14 15:50:30 +02:00
Ivailo Monev
9b41127ecb generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-13 00:40:18 +02:00
Ivailo Monev
bb8c1bfb2d kimgio: handle dummy BMP image size in ico plugin
fixes loading of some images such as the favicon of https://www.sftp.net/

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-30 06:23:23 +02:00
Ivailo Monev
f863bb36ef kimgio: return false if the color component count is invalid from jp2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-30 01:34:49 +03:00
Ivailo Monev
304482299e kimgio: deprecated warning fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-28 05:00:07 +03:00
Ivailo Monev
f605b5f6c4 kimgio: tiff plugin review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-28 01:35:00 +03:00
Ivailo Monev
7a52005d1e kimgio: new TIFF plugin
the only reason I wrote this plugin is because some RAW images (e.g.
image/x-canon-cr2) are essentially TIFF and LibRaw cannot open those

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-28 00:59:34 +03:00
Ivailo Monev
2a7c6ee1aa kimgio: remove image/jpm MIME type from the list in jp2 plugin
apparently it cannot open it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 19:06:46 +03:00
Ivailo Monev
28633b995e kimgio: mark warning case in raw plugin as unlikely
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 09:30:46 +03:00
Ivailo Monev
23fd8af700 kimgio: theoretical implementation of oj_skip_callback()
there is no documentation on what it is supposed to do so I will guess

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 09:21:03 +03:00
Ivailo Monev
66b8e20bdb kimgio: remove TODO in jp2 plugin
JPEG 2000 JPIP is data over HTTP, does not have MIME type even

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 09:15:02 +03:00
Ivailo Monev
d33233d7ab kimgio: add image/jpx and image/jpm to the jp2 plugin MIME types list
note to self:
same header/magic as the one mentioned in RFC 3745

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 07:57:42 +03:00
Ivailo Monev
e400b6841e kimgio: minor raw plugin review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 07:55:38 +03:00
Ivailo Monev
b2597e71e5 kimgio: restore device position conditionally
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 08:42:44 +03:00
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