Add a bitmap-based imaging library with support for transforms #9

Closed
opened 2020-02-19 22:43:55 +01:00 by Lephenixnoir · 1 comment
Owner

gint's current API lacks the ability to perform image transforms, color edition, and many more things useful in add-ins. Graphical manipulations are still outside the scope of gint as a kernel, which focuses on the low-level stuff and a minimal set of finely-optimized graphical functions.

I think it would be nice to have the transforms as an imaging library with the following features on fx-CG 50.

  • Image formats: r5g6b5a on fx-CG 50 (color 0x0001 would be taken as transparent), p8 on fx-9860G. I know it's a big waste of space for mono calculators but I'd like to share code as possible and gint's bopti is still there for the compact and optimized stuff.

  • Basic image management: dynamic creation from static and malloc memory, pixel access, trivial pixel and rectangle primitives.

  • Rendering with mandatory clipping to VRAM and to other images: this is important because it will allow the user to either transform on the fly on save the transforms to new images with ease.

  • Geometrical transforms:

    • Rotations by 0, 90, 180, 270 degrees.
    • Mirrors.
    • Upscaling by integer factors and trivial downscaling.
  • Color transforms (fx-CG 50):

    • Lighten and darken by doubling or halving all color components.
    • Make every non-transparent pixel the same color.

I still have to decide how much of should be compatible with bopti. I think it will be mostly independent, bopti is made for the fastest possible rendering, this will rather be small images with complicated effects. Suggestions are welcome.

Reference: [173962] and the following messages.

Tag @KikooDX.

gint's current API lacks the ability to perform image transforms, color edition, and many more things useful in add-ins. Graphical manipulations are still outside the scope of gint as a kernel, which focuses on the low-level stuff and a minimal set of finely-optimized graphical functions. I think it would be nice to have the transforms as an imaging library with the following features on fx-CG 50. * Image formats: `r5g6b5a` on fx-CG 50 (color `0x0001` would be taken as transparent), `p8` on fx-9860G. I know it's a big waste of space for mono calculators but I'd like to share code as possible and gint's bopti is still there for the compact and optimized stuff. * Basic image management: dynamic creation from static and malloc memory, pixel access, trivial pixel and rectangle primitives. * Rendering with mandatory clipping to VRAM and to other images: this is important because it will allow the user to either transform on the fly on save the transforms to new images with ease. * Geometrical transforms: - Rotations by 0, 90, 180, 270 degrees. - Mirrors. - Upscaling by integer factors and trivial downscaling. * Color transforms (fx-CG 50): - Lighten and darken by doubling or halving all color components. - Make every non-transparent pixel the same color. I still have to decide how much of should be compatible with bopti. I think it will be mostly independent, bopti is made for the fastest possible rendering, this will rather be small images with complicated effects. Suggestions are welcome. Reference: [[173962](https://www.planet-casio.com/Fr/forums/topic13572-35-gint-un-noyau-pour-developper-des-add-ins.html#173962)] and the following messages. Tag @KikooDX.
Lephenixnoir self-assigned this 2020-02-19 22:46:43 +01:00
Lephenixnoir changed title from Add a bitmap-based imagery library with support for transforms to Add a bitmap-based imaging library with support for transforms 2020-02-19 23:34:05 +01:00
Author
Owner

This is getting done here and here so I guess I'll close this issue.

This is getting done [here](https://gitea.planet-casio.com/Lephenixnoir/libimg) and [here](https://www.planet-casio.com/Fr/forums/topic16203-1-libimg-transformation-et-composition-dimages-pour-gint-wip.html) so I guess I'll close this issue.
Sign in to join this conversation.
No Label
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Lephenixnoir/gint#9
No description provided.