Scaffolding for jbig2lossy

This commit is contained in:
John Whitington 2024-01-10 17:09:49 +00:00
parent da78de8964
commit 27d34d822d
1 changed files with 5 additions and 6 deletions

View File

@ -619,7 +619,7 @@ let lossless_to_jpeg pdf ~pixel_threshold ~length_threshold ~percentage_threshol
remove out; remove out;
remove out2 remove out2
let lossless_resample pdf ~pixel_threshold ~length_threshold ~factor ~interpolate ~path_to_convert s dict reference = let lossless_resample pdf ~pixel_threshold ~length_threshold ~dpi_target ~factor ~interpolate ~path_to_convert s dict reference =
match lossless_out pdf ~pixel_threshold ~length_threshold ".png" s dict reference with match lossless_out pdf ~pixel_threshold ~length_threshold ".png" s dict reference with
| None -> () | None -> ()
| Some (_, _, _, 4, _, _) -> Printf.printf "lossless resampling for CMYK not supported yet\n%!" | Some (_, _, _, 4, _, _) -> Printf.printf "lossless resampling for CMYK not supported yet\n%!"
@ -710,14 +710,13 @@ let recompress_1bpp_jbig2_lossless ~pixel_threshold ~length_threshold ~path_to_j
remove out2 remove out2
end end
(* TODO: let preprocess_jbig2_lossy ~path_to_jbig2enc range pdf = ()
- 2bpp, 4bpp, 16bpp images.
- Downsample colours as well as pixels
- JBIG2 with refinement coding for multipage lossless? *)
let process let process
?q ?qlossless ?onebppmethod ~length_threshold ~percentage_threshold ~pixel_threshold ~dpi_threshold ?q ?qlossless ?onebppmethod ~length_threshold ~percentage_threshold ~pixel_threshold ~dpi_threshold
~dpi_target ~factor ~interpolate ~path_to_jbig2enc ~path_to_convert range pdf ~dpi_target ~factor ~interpolate ~path_to_jbig2enc ~path_to_convert range pdf
= =
begin match onebppmethod with Some "JBIG2Lossy" -> preprocess_jbig2_lossy ~path_to_jbig2enc range pdf | _ -> () end;
let inrange = let inrange =
match images pdf range with match images pdf range with
| `List l -> hashset_of_list (map (function `Assoc (("Object", `Int i)::_) -> i | _ -> assert false) l) | `List l -> hashset_of_list (map (function `Assoc (("Object", `Int i)::_) -> i | _ -> assert false) l)
@ -783,7 +782,7 @@ let process
if factor < 101 then if factor < 101 then
begin begin
if !debug_image_processing then Printf.printf "(%i/%i) object %i (lossless)... %!" !ndone nobjects objnum; if !debug_image_processing then Printf.printf "(%i/%i) object %i (lossless)... %!" !ndone nobjects objnum;
lossless_resample pdf ~pixel_threshold ~length_threshold ~factor ~interpolate ~path_to_convert s dict reference lossless_resample pdf ~pixel_threshold ~length_threshold ~dpi_target ~factor ~interpolate ~path_to_convert s dict reference
end end
end end
| None -> () | None -> ()