From 9e186b40ce36741d375de72ee5def0d8db21da2d Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Sat, 2 Apr 2022 14:25:24 -0700 Subject: [PATCH] handle bitonal files --- make_djvu | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/make_djvu b/make_djvu index 74fe74e..1726200 100755 --- a/make_djvu +++ b/make_djvu @@ -79,11 +79,27 @@ if (not @ARGV) { pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS; +sub is_bitonal { + my $file = shift; + open(my $fh,'-|','identify',$file) or die "Unable to execute identify $file: $!"; + local $/; + my $res = <$fh>; + if ($res =~ /Bilevel/) { + return 1; + } + return 0; +} + my @djvu_files; for my $tiff (@ARGV) { my $base_name = $tiff; $base_name =~ s/\.[^\.]+$//; - system('cjb2',$tiff,$base_name.'.djvu'); + if (is_bitonal($tiff)) { + system('cjb2',$tiff,$base_name.'.djvu'); + } else { + system('convert',$tiff,$base_name.'.ppm'); + system('c44','-dpi',600,$base_name.'.ppm',$base_name.'.djvu'); + } system('tesseract',$tiff,$base_name.'.ocr'); my $fh = IO::File->new($base_name.'.ocr.txt','r'); my $wf = IO::File->new($base_name.'.txt','w'); -- 2.39.2