Commit graph

195 commits

Author SHA1 Message Date
Ivailo Monev
df1d0cb370 kimgio: webp plugin compat bits
for code unaware of the new way to handle animations and maybe even
animations in general

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-11 00:44:13 +03:00
Ivailo Monev
23d015167a kimgio: adjust to Katie changes
much better performance now because frame decoding is statefull

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-11 00:31:51 +03:00
Ivailo Monev
1a0b5387c3 kimgio: initialize capabilities variables
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 22:53:03 +03:00
Ivailo Monev
cbbf7a75e5 kimgio: fill the webp buffer with transparent color
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 09:49:42 +03:00
Ivailo Monev
f07799521f kimgio: webp optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 08:37:02 +03:00
Ivailo Monev
d94f5f5d8a kimgio: handle all quircks of webp and QImageIOHandler
now animations are read correctly, slow as molasses tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 08:31:59 +03:00
Ivailo Monev
145f8e17d9 kimgio: correct frame number in webp plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 06:42:55 +03:00
Ivailo Monev
810f624622 kimgio: blend framas with the last one that is not to be blended in webp plugin
assuming frame is to be blended then that means it is partial data, if it is
not to be blended it has to be complete image

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 06:41:56 +03:00
Ivailo Monev
08154cd8c1 kimgio: partial fix for blended webp animations
not sure what to do with the offsets

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 06:08:38 +03:00
Ivailo Monev
c8056b579b kimgio: set the webp animation delay from the iterator
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-10 05:02:07 +03:00
Ivailo Monev
a4ce7d439c kimgio: log what kind of header was detected and on what iteration
as clarification what plugin will be used for example when data is probed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-27 07:46:46 +02:00
Ivailo Monev
2efb42147b kimgio: add rarely used jpeg header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-15 22:54:58 +03:00
Ivailo Monev
970e069cd1 kimgio: implement reading of 8-bit depth BMP images for ico plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-04 08:13:11 +03:00
Ivailo Monev
5613e5483c generic: remove redundant build varibles
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 20:25:52 +03:00
Ivailo Monev
57df231a13 kimgio: fix regression since d2dbb40e6e
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 05:17:54 +03:00
Ivailo Monev
1564dd849f kimageio: read and apply mask for BMP images that are not 32-bit
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-10 16:38:34 +03:00
Ivailo Monev
d2dbb40e6e kimgio: remove redundant destructors
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-05 07:29:15 +03:00
Ivailo Monev
6e549c55ff kimgio: drop TIFF write support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-05-22 17:27:52 +03:00
Ivailo Monev
5365b4788e kimgio: implement size option for tiff plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-05-22 08:04:06 +03:00
Ivailo Monev
b3e9998d8c kimgio: fix TIFF images reading and implement write
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-05-22 07:54:18 +03:00
Ivailo Monev
e7c46ec677 kimgio: add note about the mask in ico plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-28 11:02:07 +02:00
Ivailo Monev
873f109a57 kimgio: const-ify bmpimagemasksize in ICOHandler::write()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 20:30:22 +02:00
Ivailo Monev
ea22f815a4 kimgio: write mask from ico plugin
some browsers for example do not load ICO images without mask apparently,
the mask just makes the image bigger in (data) size tho - the actual image
data is the same (32-bit depth BGRA)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 19:33:52 +02:00
Ivailo Monev
aaea32c10c kimgio: claim write support only if the format matches and the device is writable
for read capabilities either the format must match or the format header but
for writing the format must be exact match

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 19:10:39 +02:00
Ivailo Monev
7661d17735 kimgio: do not mark make_jas_stream() as final in raw plugin
fixes build with LibRaw v0.21+

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-20 12:59:23 +02:00
Ivailo Monev
809ce8ae90 kimgio: reuse the static constant in webp handler
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-18 20:58:48 +02:00
Ivailo Monev
8eba8ffcde kimgio: oops, copy-pasta
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-18 20:56:43 +02:00
Ivailo Monev
3ddf452bd2 kimgio: remove now unused QImageIOPlugin::keys() reimplementations
Katie no requires them

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-18 12:04:33 +00:00
Ivailo Monev
b19a07619d kimgio: correct note in jp2 plugin
color space is exclusive value

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-29 02:46:42 +02:00
Ivailo Monev
d598c3cccf kimgio: verify the image color space earlier in jp2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-27 18:23:35 +02:00
Ivailo Monev
a0afe27554 kimgio: do not attempt to load images in YUV, e-YCC and CMYK color space
if the decoder cannot tell (correctly) the color space then.. idk

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-27 18:17:19 +02:00
Ivailo Monev
5ca124cb4e kimgio: webp plugin review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 14:49:13 +02:00
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