Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
15
Task/Bitmap/OCaml/bitmap-1.ocaml
Normal file
15
Task/Bitmap/OCaml/bitmap-1.ocaml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
let new_img ~width ~height =
|
||||
let all_channels =
|
||||
let kind = Bigarray.int8_unsigned
|
||||
and layout = Bigarray.c_layout
|
||||
in
|
||||
Bigarray.Array3.create kind layout 3 width height
|
||||
in
|
||||
let r_channel = Bigarray.Array3.slice_left_2 all_channels 0
|
||||
and g_channel = Bigarray.Array3.slice_left_2 all_channels 1
|
||||
and b_channel = Bigarray.Array3.slice_left_2 all_channels 2
|
||||
in
|
||||
(all_channels,
|
||||
r_channel,
|
||||
g_channel,
|
||||
b_channel)
|
||||
12
Task/Bitmap/OCaml/bitmap-2.ocaml
Normal file
12
Task/Bitmap/OCaml/bitmap-2.ocaml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
let new_img ~width ~height =
|
||||
let r_channel, g_channel, b_channel =
|
||||
let kind = Bigarray.int8_unsigned
|
||||
and layout = Bigarray.c_layout
|
||||
in
|
||||
(Bigarray.Array2.create kind layout width height,
|
||||
Bigarray.Array2.create kind layout width height,
|
||||
Bigarray.Array2.create kind layout width height)
|
||||
in
|
||||
(r_channel,
|
||||
g_channel,
|
||||
b_channel)
|
||||
5
Task/Bitmap/OCaml/bitmap-3.ocaml
Normal file
5
Task/Bitmap/OCaml/bitmap-3.ocaml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
let fill_img ~img:(_, r_channel, g_channel, b_channel) ~color:(r,g,b) =
|
||||
Bigarray.Array2.fill r_channel r;
|
||||
Bigarray.Array2.fill g_channel g;
|
||||
Bigarray.Array2.fill b_channel b;
|
||||
;;
|
||||
6
Task/Bitmap/OCaml/bitmap-4.ocaml
Normal file
6
Task/Bitmap/OCaml/bitmap-4.ocaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
let put_pixel_unsafe (_, r_channel, g_channel, b_channel) (r,g,b) =
|
||||
(fun x y ->
|
||||
r_channel.{x,y} <- r;
|
||||
g_channel.{x,y} <- g;
|
||||
b_channel.{x,y} <- b;
|
||||
)
|
||||
6
Task/Bitmap/OCaml/bitmap-5.ocaml
Normal file
6
Task/Bitmap/OCaml/bitmap-5.ocaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
let get_pixel_unsafe (_, r_channel, g_channel, b_channel) =
|
||||
(fun x y ->
|
||||
(r_channel.{x,y},
|
||||
g_channel.{x,y},
|
||||
b_channel.{x,y})
|
||||
)
|
||||
24
Task/Bitmap/OCaml/bitmap-6.ocaml
Normal file
24
Task/Bitmap/OCaml/bitmap-6.ocaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
let put_pixel img color x y =
|
||||
let _, r_channel,_,_ = img in
|
||||
let width = Bigarray.Array2.dim1 r_channel
|
||||
and height = Bigarray.Array2.dim2 r_channel in
|
||||
|
||||
if (x < 0) || (x >= width) then invalid_arg "x out of bounds";
|
||||
if (y < 0) || (y >= height) then invalid_arg "y out of bounds";
|
||||
|
||||
let r, g, b = color in
|
||||
if (r < 0) || (r > 255) then invalid_arg "red out of bounds";
|
||||
if (g < 0) || (g > 255) then invalid_arg "green out of bounds";
|
||||
if (b < 0) || (b > 255) then invalid_arg "blue out of bounds";
|
||||
|
||||
put_pixel_unsafe img color x y;
|
||||
;;
|
||||
|
||||
let get_pixel ~img ~pt:(x, y) =
|
||||
let _, r_channel,_,_ = img in
|
||||
let width = Bigarray.Array2.dim1 r_channel
|
||||
and height = Bigarray.Array2.dim2 r_channel in
|
||||
if (x < 0) || (x >= width) then invalid_arg "x out of bounds";
|
||||
if (y < 0) || (y >= height) then invalid_arg "y out of bounds";
|
||||
get_pixel_unsafe img x y;
|
||||
;;
|
||||
4
Task/Bitmap/OCaml/bitmap-7.ocaml
Normal file
4
Task/Bitmap/OCaml/bitmap-7.ocaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
let get_dims ~img:(_, r_channel, _, _) =
|
||||
let width = Bigarray.Array2.dim1 r_channel
|
||||
and height = Bigarray.Array2.dim2 r_channel in
|
||||
(width, height)
|
||||
Loading…
Add table
Add a link
Reference in a new issue