Files
Geneweb/lib/image.mli
2024-03-05 22:01:20 +01:00

76 lines
3.1 KiB
OCaml

open Config
open Gwdb
val portrait_folder : config -> string
val carrousel_folder : config -> string
val authorized_image_file_extension : string array
val scale_to_fit : max_w:int -> max_h:int -> w:int -> h:int -> int * int
(** [scale_to_fit ~max_w ~max_h ~w ~h] is the {(width, height)} of a proportionally scaled {(w, h)} rectangle so it can fit in a {(max_w, max_h)} rectangle *)
val source_filename : config -> string -> string
(** Returns path to the image file with the giving name in directory {i src/}. *)
(* TODO this should be removed *)
val default_portrait_filename : base -> person -> string
(** [default_portrait_filename base p] is the default filename of [p]'s portrait. Without it's file extension.
e.g: default_portrait_filename_of_key "Jean Claude" "DUPOND" 3 is "jean_claude.3.dupond"
*)
val size_from_path : [ `Path of string ] -> (int * int, unit) result
(** [size_from_path path]
- Error () if failed to read or parse file
- Ok (width, height) of the file.
It works by opening the file and reading magic numbers *)
val path_of_filename : string -> [> `Path of string ]
(** [path_of_filename fname] search for image {i images/fname} inside the base and assets directories.
Return the path to found file or [fname] if file isn't found. *)
val rename_portrait : config -> base -> person -> string * string * int -> unit
(** Rename portrait to match updated name *)
val src_to_string : [< `Path of string | `Url of string ] -> string
(** [src_to_string src] is [src] as a string *)
(* TODO this should be removed *)
val get_portrait_path : config -> base -> person -> [> `Path of string ] option
(** [get_portrait_path conf base p] is
- [None] if we don't have access to [p]'s portrait or it doesn't exist.
- [Some path] with [path] the full path with extension of [p]'s portrait.
*)
val get_portrait_with_size :
config ->
base ->
person ->
([> `Path of string | `Url of string ] * (int * int) option) option
(** [get_portrait_with_size conf base p] is
- [None] if we don't have access to [p]'s portrait or it doesn't exist.
- [Some (src, size_opt)] with [src] the url or path of [p]'s portrait. [size_opt] is the (width,height) of the portrait if we could recover them *)
val get_portrait :
config -> base -> person -> [> `Path of string | `Url of string ] option
(** [get_portrait conf base p] is
- [None] if we don't have access to [p]'s portrait or it doesn't exist.
- [Some src] with [src] the url or path of [p]'s portrait.
*)
val get_old_portrait :
config -> base -> person -> [> `Path of string | `Url of string ] option
(** [get_portrait conf base p] is
- [None] if we don't have access to [p]'s portrait or it doesn't exist.
- [Some src] with [src] the url or path of [p]'s portrait.
*)
(* -- Carrousel -- *)
val get_carrousel_imgs :
config -> base -> person -> (string * string * string * string) list
val get_carrousel_old_imgs :
config -> base -> person -> (string * string * string * string) list
val is_not_private_img : config -> string -> bool
(** determines if image is private (pathname contains "private/") *)