OCaml 与 JPEG 一起工作

OCaml work with JPEG

使用 CamlImages,如何找到坐标 XY 中的点的颜色

let () =
  let name  = "test.jpg" in
  let image = Jpeg.load name [] in

图像的类型为 Images.t

但有趣 Rgb24.get 需要类型 Rgb24.t

  (* get color from coords XY *)
  let x = 1 and y = 1 in
  let rgb = Rgb24.get image x y in
  print_int rgb.r;

我尝试了库中的所有函数,但没有找到解决方案。

Jpeg.load returns Images.t 其定义为:

type t =
   | Index8 of Index8.t
   | Rgb24 of Rgb24.t
   | Index16 of Index16.t
   | Rgba32 of Rgba32.t
   | Cmyk32 of Cmyk32.t;;

您只需要对 Jpeg.load 的结果进行模式匹配并得到 Rgb24.t:

let rgb24 = match Jpeg.load name [] with
  | Rgb24 x -> x
  | _ -> failwith "image must be rgb24"