Commit Graph

136 Commits

Author SHA1 Message Date
Jeroen van Rijn
cd3069b16b Small updates to JPEG loader
- Remove some unnecessary nesting
- Add frame type (SOF0, et al) to metadata if `.return_metadata` is used
2025-09-09 18:34:19 +02:00
Jeroen van Rijn
572b26a846 Expand grayscale JPEGs to RGB(A)
And handle grayscale jpeg example file in test suite.
2025-09-09 17:13:21 +02:00
Jeroen van Rijn
7b3ca701e0 Implement .alpha_add_if_missing for JPEG 2025-09-09 14:51:16 +02:00
Jeroen van Rijn
dd9fceaae1 Make progressive JPEGs return a proper error
Add progressive JPEG file to test suite and test that loading it returns the expected `Unsupported_Frame_Type` error.

This JPEG variant will hopefully be supported in the future, but we should at least return an error rather than use `unsupported()`.
2025-09-09 13:53:43 +02:00
Jeroen van Rijn
2f59e0175e Address some naming issues 2025-09-08 17:44:58 +02:00
Jeroen van Rijn
14bf730a2c Make _register contextless 2025-09-08 17:17:14 +02:00
IllusionMan1212
cb820eea4d jpeg: extract Exif data 2025-09-08 17:13:03 +02:00
IllusionMan1212
57a92b14cc jpeg: support images that encode zero-based component ids 2025-09-08 17:13:03 +02:00
Hisham Aburaqibah
694593c5f2 image/jpeg: more bounds checking and skip malformed APP0
Also increase the maximum huffman symbols to 176
2025-09-08 17:13:03 +02:00
Hisham Aburaqibah
8644f3beba image/jpeg: better pack APP0 structs 2025-09-08 17:13:03 +02:00
Hisham Aburaqibah
a6f18c3367 image/jpeg: implement jpeg decoding for baseline and extended sequential jpegs 2025-09-08 17:12:58 +02:00
Hisham Aburaqibah
d704c45c24 core/image: some jpegs have APP13 or COM markers after SOI 2025-09-08 17:12:04 +02:00
Michael Lee
cfde843778 [core:image/png] use .Image_Dimensions_Too_Large 2025-09-08 09:08:07 -05:00
gingerBill
7642e0a0e0 Require @(init) and @(fini) to be proc "contextless" () 2025-08-08 12:10:01 +01:00
Jeroen van Rijn
db5c45602d Remove outdated optimization attributes. 2025-05-27 17:57:06 +02:00
Hisham Aburaqibah
247384574a fix(core/image): off-by-one index when detecting certain JPEG images 2025-01-05 13:05:11 +02:00
Jeroen van Rijn
ad99d20d29 Remove outdated PNG save helpers 2024-12-23 16:33:23 +01:00
Jeroen van Rijn
28a3a68dc9 Fix image.which_bytes
Invert test in `which_bytes` to fix Softimage PIC detection. Fixes #4429.
2024-10-29 09:55:27 +01:00
Laytan Laats
c8ed499293 image: add panic when load is called without any registered loaders 2024-10-20 18:41:10 +02:00
Karl Zylinski
19f0127e55 Moved all packages in core, base, vendor, tests and examples to use new #+ file tag syntax. 2024-09-14 18:27:49 +02:00
Laytan Laats
288312a812 core: improve package doc comments for the documentation generator 2024-09-03 19:59:04 +02:00
gordonshamway23
426367c522 Added missing slice advancing. 2024-08-23 21:28:59 +02:00
Karl Zylinski
b63657d293 Fix for blend_pixel.odin in core/image/common.odin not compiling 2024-08-05 17:23:58 +02:00
Karl Zylinski
2d32b819dc common.odin compile fix
Fix for "Error: Prefer to separate 'where' clauses with a comma rather than '&&'"
2024-08-05 16:32:34 +02:00
gingerBill
acb1ebddf6 Fix err != 0 uses 2024-08-04 15:01:04 +01:00
gingerBill
93fabf8628 Replace err != 0 with err != nil where possible 2024-08-04 14:57:25 +01:00
Jeroen van Rijn
90e573c54a Add image.premultiply_alpha helper. 2024-08-03 12:58:43 +02:00
Jeroen van Rijn
1a16585b10 Add image.pixels_to_image helper. 2024-08-02 14:54:52 +02:00
Laytan Laats
2d8d0dd851 fix @(optimization_mode) usage in builtin collections 2024-07-08 21:07:53 +02:00
gingerBill
e296d6fb90 Fix loads of indentation issues with mixing spaces and tabs 2024-06-29 19:50:51 +01:00
gingerBill
5413a8b744 Even more style fixes 2024-06-29 19:11:36 +01:00
gingerBill
930c929294 Indentation fixes 2024-06-29 18:49:57 +01:00
gingerBill
4b71c47fd5 Check for unneeded transmute with -vet-cast 2024-06-29 12:02:31 +01:00
Jeroen van Rijn
5be7d8e32d Clean up PNG code. 2024-06-09 17:59:59 +02:00
Jeroen van Rijn
6b88d0a820 Use new blend helper 2024-06-09 16:37:27 +02:00
Jeroen van Rijn
d2a2c1e74e Image: Add improved blending method and test it. 2024-06-09 16:10:06 +02:00
Jeroen van Rijn
566119ff83 Add saving of 24 and 32-bit images to BMP format. 2024-06-06 23:53:15 +02:00
Jeroen van Rijn
678fdae966 Rebased. 2024-06-06 16:32:18 +02:00
Jeroen van Rijn
58a1bb32e5 Apply fix to QOI decoder as well. 2024-05-18 19:41:07 +02:00
Jeroen van Rijn
7955f4ddf1 Fix qoi encode bug. 2024-05-18 13:59:50 +02:00
Maurizio M. Gavioli
a0cff82320 Fix the format of some doc.odin files of the core library which did not made into the documentation.
`c/frontend/tokenizer`:
   add proper "Example:" header to demo example code,
   removed empty lines.
`container/bit_array`:
   moved comment before package;
   aligned narrative lines to left margin;
   converted case lines into bulleted lines ("- ");
   converted individual examples to single-tab-indented preformatted text.
`dynlib`:
   removed "//+build ignore" line;
   added newline at EOF.
`image/netpmb`:
   converted indented lines of "Reading", "Wrting" and "Some syntax..." into bulleted lists;
   "Formats" indented lines kept as they are as the preformatted text seems relevant to keep the alignments;
   doubly indented lines kept as single-indented to keep them different (as the format does not allow for two-level bulleted lists);
   removed empy lines.
`os/os2`:	WIP, not modified
`sys/info`:
   removed "//+build ignore" line;
   converted tab-indented initial description into regular left-margin comment;
   moved uncommented sample code within the doc comment as an "Example:";
   moved simple- and double-tabbed separate comments with sample Windows and macOS outputs within the doc comment as bulleted headlines with preformatted output listings;
   removed now empty comments and blank lines after the package line.
`text/i18n`:
   removed "//+build ignore" line;
   moved the pacakge line at the end;
   de-indented the tab-indented introductory narrative;
   moved sample code comments into the doc comment as tab-indented code with a proper "Example:" heading;
   removed "```" MD attempts at code formatting.
`text/table`:
   unindented the comment lines of a descriptive kind;
   headlines of major subdivisions are marked as bold;
   kept code samples as tab-indented preformatted text (as there are several of them, the standard "Example:" and "Output:" headings cannot be used) removing the "```" MD attempts at code formatting;
   removed in-between blank lines.
2024-04-14 17:18:08 +02:00
Laytan Laats
3a0df80066 correct newly found vets 2024-04-03 00:52:58 +02:00
gingerBill
29e5f94c2a Add #no_broadcast procedure parameter to disallow automatic array programming broadcasting on procedure arguments 2024-03-21 11:52:48 +00:00
gingerBill
3e7e779abf Replace core:* to base:* where appropriate 2024-01-28 22:18:51 +00:00
gingerBill
49ab935ae9 Disallow for in in favour of for _ in 2023-08-08 14:56:12 +01:00
gingerBill
44ea82f845 Clean up usage of using throughout core and vendor 2023-07-31 11:46:40 +01:00
gingerBill
0de7df9eab Improve //+vet; remove using in many places; add //+vet !using-stmt where necessary 2023-07-31 11:37:14 +01:00
gingerBill
3dec55f009 Replace x in &y Use &v in y syntax through core & vendor for switch/for statements 2023-06-26 15:42:57 +01:00
gingerBill
9b54b99bf6 Use positional and named arguments within the core library 2023-06-21 01:17:05 +01:00
gingerBill
1e17f44991 Improve error handling for resize and reserve procedures 2023-05-22 11:47:36 +01:00