55 Commits

Author SHA1 Message Date
gingerBill
842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause
This change was made in order to allow things produced with Odin and using Odin's core library, to not require the LICENSE to also be distributed alongside the binary form.
2025-10-28 14:38:25 +00:00
Jeroen van Rijn
673358f8b9 Package lines for core:image. 2025-10-09 17:18:51 +02:00
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
IllusionMan1212
cb820eea4d jpeg: extract Exif data 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
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
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
930c929294 Indentation fixes 2024-06-29 18:49:57 +01: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
678fdae966 Rebased. 2024-06-06 16:32:18 +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
1e17f44991 Improve error handling for resize and reserve procedures 2023-05-22 11:47:36 +01:00
Jeroen van Rijn
3d4698debe [TGA] Add B&W and RLE color-mapped. 2022-08-29 00:29:50 +02:00
Jeroen van Rijn
d0109db23b [TGA] Add support for Top-Right and Bottom-Right origins. 2022-08-28 19:41:42 +02:00
Jeroen van Rijn
f74e281efa Various changes to TGA reader
- Style changes
- Change ptr usage to slice indexing
- Add TGA Footer

Also, add `peek_data` with offset to `compress`.
2022-08-28 18:25:07 +02:00
Benoit Jacquier
6363013dd8 style fix 2022-08-27 19:45:14 +02:00
Benoit Jacquier
934131abf8 Add RLE supports for TGA loader 2022-08-27 19:30:34 +02:00
Benoit Jacquier
4e5337412a Merge remote-tracking branch 'origin/master' 2022-08-27 16:22:37 +02:00
Benoit Jacquier
00f2e911a7 Add support for basic TGA loading 2022-08-27 16:07:21 +02:00
cui fliter
dc8b7a0eb8 fix some typos
Signed-off-by: cui fliter <imcusg@gmail.com>
2022-08-05 20:10:20 +08:00
gingerBill
e8485ee7e7 Correction to image.destroy 2022-05-14 15:15:04 +01:00
gingerBill
c516fb947f Add image.destroy 2022-05-14 15:11:23 +01:00
gingerBill
01e8e682c0 Generalized core:image loader
```odin
import "core:image"
import "core:image/png"

...

img, err := image.load_from_file("path.png")
```
2022-05-14 14:38:26 +01:00
Jeroen van Rijn
694c13fe86 Merge branch 'master' into pr/1726 2022-04-30 21:01:04 +02:00
Jeroen van Rijn
d6a8216ce4 [pbm] Normalize some errors, correct .depth 2022-04-30 14:34:07 +02:00
Jeroen van Rijn
ae3deea153 Merge branch 'master' into pr/1726 2022-04-30 12:29:28 +02:00
hikari
0ad448f1c7 sys/windows: add a couple of procedures and types 2022-04-30 11:21:37 +03:00
Jeroen van Rijn
fdd24f787f [image/tga] Writer for RGB(A) 8-bit images. 2022-04-18 23:28:34 +02:00
WalterPlinge
b6abd691f4 Image: Fix implicit enum error 2022-04-18 20:42:50 +01:00
WalterPlinge
8d370fabdd Added initial Netpbm image format support 2022-04-18 20:29:37 +01:00
Jeroen van Rijn
15b440c4f1 [image] Add QOI load/save.
Additionally:
- Firm up PNG loader with some additional checks.
- Add helper functions to `core:image` to expand grayscale to RGB(A), and so on.

TODO: Possibly replace PNG's post-processing steps with calls to the new helper functions.
2022-04-12 18:14:09 +02:00
gingerBill
17e36bd5e1 Utilize union #shared_nil to core:image Error 2022-03-24 12:06:18 +00:00
gingerBill
c85ac955f7 Simplify docs to hide the copyright 2022-01-17 19:00:47 +00:00
Jeroen van Rijn
b4b53aeb71 png: Channel helper metadata. 2021-10-06 22:47:40 +02:00
Jeroen van Rijn
c4b4a841d6 png: Move metadata. 2021-10-06 22:43:33 +02:00
Jeroen van Rijn
8fcd1794a6 png: Add sane compile-time maximums for dimensions + chunk sizes. 2021-10-06 21:48:22 +02:00
Jeroen van Rijn
9b5ae95677 png + compress: Rearrange error unions. 2021-10-06 20:45:29 +02:00
Jeroen van Rijn
21c6d691d8 Add additional error checking to helpers. 2021-10-06 20:10:37 +02:00
gingerBill
251da264ed Remove unneeded semicolons from the core library 2021-08-31 22:21:13 +01:00
Jeroen van Rijn
352494cbb4 ZLIB: Start optimization. 2021-06-21 21:05:52 +02:00
Jeroen van Rijn
e036a321a0 Replace core:image's sidecar with explicit metadata_ptr and metadata_type.
To unpack, use:
```odin

v: ^png.Info;

if img.metadata_ptr != nil && img.metadata_type == png.Info {
	v = (^png.Info)(img.metadata_ptr);
	...
}
```
2021-06-21 16:32:42 +02:00
Jeroen van Rijn
55d09251d8 Change PNG's img.sidecar to ^Info, make img.depth an int.
For compatibility with the upcoming OpenEXR code, img.depth is now an int.
Like OpenEXR's code, it will now also return metadata as ^Info instead of Info.

The example was updated to retrieve the metadata this way.

It regrettably does not fix: #1018. That seems to be a codegen issue in the test runner or elsewhere.
2021-06-20 18:27:23 +02:00