package bimage-sdl
Install
Dune Dependency
Authors
Maintainers
Sources
md5=801536704a0c6449962e817f49ef404c
sha512=3fd4202c00246e33d5fdea5a868a097b8c69e0c84b88169635b2773534683557d7cd540e0da9534adb89b394f76f2a106a8f9cb14175cfdfe7471cf72c95193b
Description
An image processing library for OCaml providing efficient, composable operations. Additionally, bimage supports most types supported by Bigarray.
README
bimage — Image processing library
%%VERSION%%
bimage is an image processing library for OCaml.
Features
Simple image type based on bigarrays
Supports u8, u16, i32, i64, f32, f64, complex32 and complex64 datatypes
Multiple layout support (Planar/Interleaved)
Composable image operations
Image I/O using ImageMagick/GraphicsMagick and FFmpeg in (
bimage-unix
)Support for displaying images using GTK (
bimage-gtk
) or SDL (bimage-sdl
)
bimage is distributed under the ISC license.
Homepage: https://github.com/zshipko/bimage
Installation
bimage can be installed with opam
:
opam install bimage
Additionally, bimage-unix
, which provides ImageMagick
and FFmpeg
bindings, can be installed by running:
opam install bimage-unix
If you don't use opam
consult the opam
file for build instructions.
Examples
An example showing how to create an image and how to use Image.for_each
:
open Bimage
let _ =
(* Create a new image *)
let a = Image.create u8 gray 64 64 in
(* Iterate over each pixel *)
let _ =
Image.for_each (fun x y _px ->
Image.set a x y 0 (x + y)
) a
in
(* Save the image using ImageMagick *)
Bimage_unix.Magick.write "test1.jpg" a
An example using Op.t
to run a filter on an image:
open Bimage
open Bimage_unix
let _ =
(* Load an image using ImageMagick *)
let a = match Magick.read f32 rgb "test/test.jpg" with
| Ok img -> img
| Error e -> failwith (Error.to_string e)
in
(* Create an operation to convert to grayscale and subtract 1.0 *)
let f = Op.(grayscale &- scalar 0.5) in
(* Create a destination image *)
let dest = Image.like_with_color gray a in
(* Run the operation *)
let () = Op.eval f ~output:dest [| a |] in
(* Save the image using ImageMagick *)
Magick.write "test2.jpg" dest
Documentation
The documentation and API reference is generated from the source interfaces. It can be consulted online or via odig doc bimage
.
Tests
In the distribution sample programs and tests are located in the test
directory. They can be built and run with:
dune runtest