]> git.donarmstrong.com Git - bin.git/commitdiff
handle bitonal files
authorDon Armstrong <don@donarmstrong.com>
Sat, 2 Apr 2022 21:25:24 +0000 (14:25 -0700)
committerDon Armstrong <don@donarmstrong.com>
Sat, 2 Apr 2022 21:25:24 +0000 (14:25 -0700)
make_djvu

index 74fe74e2723bedb02c2218af20c0d2aa5be1c973..17262008693ae6e490340186cbf240e960a96ab6 100755 (executable)
--- 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');