sig
  module Marker :
    sig
      type t = Comment of string | App of int * string
      val format : Format.formatter -> Jpeg.Marker.t -> unit
    end
  val load : string -> Images.load_option list -> Images.t
  val load_thumbnail :
    string ->
    Images.load_option list -> Geometry.spec -> int * int * Images.t
  val save : string -> Images.save_option list -> Images.t -> unit
  val save_with_markers :
    string ->
    Images.save_option list -> Images.t -> Jpeg.Marker.t list -> unit
  val save_as_cmyk :
    string ->
    Images.save_option list ->
    (Images.rgb -> int * int * int * int) -> Images.t -> unit
  val save_cmyk_sample : string -> Images.save_option list -> unit
  type in_handle
  val open_in : string -> int * int * Jpeg.in_handle * Jpeg.Marker.t list
  val open_in_thumbnail :
    string ->
    Geometry.spec ->
    int * int * (int * int * Jpeg.in_handle) * Jpeg.Marker.t list
  val read_scanline : Jpeg.in_handle -> bytes -> int -> unit
  val close_in : Jpeg.in_handle -> unit
  type out_handle
  val open_out : string -> int -> int -> int -> Jpeg.out_handle
  val write_marker : Jpeg.out_handle -> Jpeg.Marker.t -> unit
  val write_scanline : Jpeg.out_handle -> bytes -> unit
  val close_out : Jpeg.out_handle -> unit
  val check_header : string -> Images.header
  val read_markers : string -> Jpeg.Marker.t list
end