diff options
author | ivan <ivan> | 2010-10-14 01:14:27 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-10-14 01:14:27 +0000 |
commit | 7bbe939d139be7edd77378cfc9a2c3ec6287749d (patch) | |
tree | 4c43f97b729880ae191cc630d9402b843ca76870 /FS/FS/Misc.pm | |
parent | f839709351aee1f9488e9a26496adc564aa5b8e5 (diff) |
more contact work and preliminary business card upload
Diffstat (limited to 'FS/FS/Misc.pm')
-rw-r--r-- | FS/FS/Misc.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 0e8d92b..fe8ac60 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -20,6 +20,7 @@ use Tie::IxHash; pkg_freqs generate_ps generate_pdf do_print csv_from_fixed + ocr_image ); $DEBUG = 0; @@ -850,6 +851,41 @@ sub csv_from_fixed { ''; } +=item ocr_image IMAGE_SCALAR + +Runs OCR on the provided image data and returns a list of text lines. + +=cut + +sub ocr_image { + my $logo_data = shift; + + #XXX use conf dir location from Makefile + my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc; + my $fh = new File::Temp( + TEMPLATE => 'bizcard.XXXXXXXX', + SUFFIX => '.png', #XXX assuming, but should handle jpg, gif, etc. too + DIR => $dir, + UNLINK => 0, + ) or die "can't open temp file: $!\n"; + + my $filename = $fh->filename; + + print $fh $logo_data; + close $fh; + + run( [qw(ocroscript recognize), $filename], '>'=>"$filename.hocr" ) + or die "ocroscript recognize failed\n"; + + run( [qw(ocroscript hocr-to-text), "$filename.hocr"], '>pipe'=>\*OUT ) + or die "ocroscript hocr-to-text failed\n"; + + my @lines = split(/\n/, <OUT> ); + + foreach (@lines) { s/\.c0m\s*$/.com/; } + + @lines; +} =back |