tesseract_bin 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +23 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/ext/tesseract_bin/extconf.rb +17 -0
- data/lib/tesseract_bin.rb +12 -0
- data/tesseract_bin.gemspec +660 -0
- data/test/helper.rb +18 -0
- data/test/test_tesseract_bin.rb +7 -0
- data/vendor/tesseract-2.04/AUTHORS +8 -0
- data/vendor/tesseract-2.04/COPYING +23 -0
- data/vendor/tesseract-2.04/ChangeLog +71 -0
- data/vendor/tesseract-2.04/INSTALL +229 -0
- data/vendor/tesseract-2.04/Makefile.am +20 -0
- data/vendor/tesseract-2.04/Makefile.in +641 -0
- data/vendor/tesseract-2.04/NEWS +1 -0
- data/vendor/tesseract-2.04/README +138 -0
- data/vendor/tesseract-2.04/ReleaseNotes +213 -0
- data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
- data/vendor/tesseract-2.04/StdAfx.h +24 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
- data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
- data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
- data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
- data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
- data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
- data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
- data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
- data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
- data/vendor/tesseract-2.04/ccmain/control.h +198 -0
- data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
- data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
- data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
- data/vendor/tesseract-2.04/ccmain/output.h +116 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
- data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
- data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
- data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
- data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
- data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
- data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
- data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
- data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
- data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
- data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
- data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
- data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
- data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
- data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
- data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
- data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
- data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
- data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
- data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
- data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
- data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
- data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
- data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
- data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
- data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
- data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
- data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
- data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
- data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
- data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
- data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
- data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
- data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
- data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
- data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
- data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
- data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
- data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
- data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
- data/vendor/tesseract-2.04/ccutil/host.h +180 -0
- data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
- data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
- data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
- data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
- data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
- data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
- data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
- data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
- data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
- data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
- data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
- data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
- data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
- data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
- data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
- data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
- data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
- data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
- data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
- data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
- data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
- data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
- data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
- data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
- data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
- data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
- data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
- data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
- data/vendor/tesseract-2.04/classify/baseline.h +91 -0
- data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
- data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
- data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
- data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
- data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
- data/vendor/tesseract-2.04/classify/cluster.h +158 -0
- data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
- data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
- data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
- data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
- data/vendor/tesseract-2.04/classify/extern.h +32 -0
- data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
- data/vendor/tesseract-2.04/classify/extract.h +36 -0
- data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
- data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
- data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
- data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
- data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
- data/vendor/tesseract-2.04/classify/float2int.h +65 -0
- data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
- data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
- data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
- data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
- data/vendor/tesseract-2.04/classify/fxid.h +69 -0
- data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
- data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
- data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
- data/vendor/tesseract-2.04/classify/intfx.h +63 -0
- data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
- data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
- data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
- data/vendor/tesseract-2.04/classify/intproto.h +320 -0
- data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
- data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
- data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
- data/vendor/tesseract-2.04/classify/mf.h +43 -0
- data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
- data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
- data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
- data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
- data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
- data/vendor/tesseract-2.04/classify/mfx.h +52 -0
- data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
- data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
- data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
- data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
- data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
- data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
- data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
- data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
- data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
- data/vendor/tesseract-2.04/classify/protos.h +258 -0
- data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
- data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
- data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
- data/vendor/tesseract-2.04/classify/speckle.h +69 -0
- data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
- data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
- data/vendor/tesseract-2.04/config/config.guess +1466 -0
- data/vendor/tesseract-2.04/config/config.h.in +188 -0
- data/vendor/tesseract-2.04/config/config.sub +1579 -0
- data/vendor/tesseract-2.04/config/depcomp +530 -0
- data/vendor/tesseract-2.04/config/install-sh +269 -0
- data/vendor/tesseract-2.04/config/missing +198 -0
- data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
- data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
- data/vendor/tesseract-2.04/configure +10424 -0
- data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
- data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
- data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
- data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
- data/vendor/tesseract-2.04/cutil/const.h +108 -0
- data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
- data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
- data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
- data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
- data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
- data/vendor/tesseract-2.04/cutil/debug.h +348 -0
- data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
- data/vendor/tesseract-2.04/cutil/efio.h +32 -0
- data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
- data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
- data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
- data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
- data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
- data/vendor/tesseract-2.04/cutil/general.h +33 -0
- data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
- data/vendor/tesseract-2.04/cutil/globals.h +70 -0
- data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
- data/vendor/tesseract-2.04/cutil/listio.h +43 -0
- data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
- data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
- data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
- data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
- data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
- data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
- data/vendor/tesseract-2.04/cutil/structures.h +112 -0
- data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
- data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
- data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
- data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
- data/vendor/tesseract-2.04/cutil/variables.h +170 -0
- data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
- data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
- data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
- data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
- data/vendor/tesseract-2.04/dict/choices.h +241 -0
- data/vendor/tesseract-2.04/dict/context.cpp +270 -0
- data/vendor/tesseract-2.04/dict/context.h +82 -0
- data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
- data/vendor/tesseract-2.04/dict/dawg.h +394 -0
- data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
- data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
- data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
- data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
- data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
- data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
- data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
- data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
- data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
- data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
- data/vendor/tesseract-2.04/dict/permngram.h +33 -0
- data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
- data/vendor/tesseract-2.04/dict/permnum.h +83 -0
- data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
- data/vendor/tesseract-2.04/dict/permute.h +93 -0
- data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
- data/vendor/tesseract-2.04/dict/reduce.h +112 -0
- data/vendor/tesseract-2.04/dict/states.cpp +382 -0
- data/vendor/tesseract-2.04/dict/states.h +111 -0
- data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
- data/vendor/tesseract-2.04/dict/stopper.h +103 -0
- data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
- data/vendor/tesseract-2.04/dict/trie.h +190 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
- data/vendor/tesseract-2.04/eurotext.tif +0 -0
- data/vendor/tesseract-2.04/image/Makefile.am +10 -0
- data/vendor/tesseract-2.04/image/Makefile.in +596 -0
- data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
- data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
- data/vendor/tesseract-2.04/image/img.h +336 -0
- data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
- data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
- data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
- data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
- data/vendor/tesseract-2.04/image/imgio.h +22 -0
- data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
- data/vendor/tesseract-2.04/image/imgs.h +102 -0
- data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
- data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
- data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
- data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
- data/vendor/tesseract-2.04/image/svshowim.h +25 -0
- data/vendor/tesseract-2.04/java/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
- data/vendor/tesseract-2.04/java/makefile +55 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
- data/vendor/tesseract-2.04/phototest.tif +0 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
- data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
- data/vendor/tesseract-2.04/tessdata/confsets +3 -0
- data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
- data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
- data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
- data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
- data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
- data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
- data/vendor/tesseract-2.04/tessdll.cpp +351 -0
- data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
- data/vendor/tesseract-2.04/tessdll.h +143 -0
- data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
- data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
- data/vendor/tesseract-2.04/tesseract.dsw +116 -0
- data/vendor/tesseract-2.04/tesseract.sln +59 -0
- data/vendor/tesseract-2.04/tesseract.spec +188 -0
- data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
- data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
- data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
- data/vendor/tesseract-2.04/testing/README +43 -0
- data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
- data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
- data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
- data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
- data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
- data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
- data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
- data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
- data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
- data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
- data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
- data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
- data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
- data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
- data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
- data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
- data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
- data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
- data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
- data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
- data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
- data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
- data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
- data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
- data/vendor/tesseract-2.04/textord/makerow.h +295 -0
- data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
- data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
- data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
- data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
- data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
- data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
- data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
- data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
- data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
- data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
- data/vendor/tesseract-2.04/textord/tessout.h +76 -0
- data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
- data/vendor/tesseract-2.04/textord/topitch.h +195 -0
- data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
- data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
- data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
- data/vendor/tesseract-2.04/textord/tospace.h +193 -0
- data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
- data/vendor/tesseract-2.04/textord/tovars.h +94 -0
- data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
- data/vendor/tesseract-2.04/textord/underlin.h +53 -0
- data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
- data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
- data/vendor/tesseract-2.04/training/Makefile.am +54 -0
- data/vendor/tesseract-2.04/training/Makefile.in +720 -0
- data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
- data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
- data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
- data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
- data/vendor/tesseract-2.04/training/mergenf.h +106 -0
- data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
- data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
- data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
- data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
- data/vendor/tesseract-2.04/training/name2char.h +38 -0
- data/vendor/tesseract-2.04/training/training.cpp +190 -0
- data/vendor/tesseract-2.04/training/training.h +130 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
- data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
- data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
- data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
- data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
- data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
- data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
- data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
- data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
- data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
- data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
- data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
- data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
- data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
- data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
- data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
- data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
- data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
- data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
- data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
- data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
- data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
- data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
- data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
- data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
- data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
- data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
- data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
- data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
- data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
- data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
- data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
- data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
- data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
- data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
- data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
- data/vendor/tesseract-2.04/wordrec/render.h +58 -0
- data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
- data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
- data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
- data/vendor/tesseract-2.04/wordrec/split.h +115 -0
- data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
- data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
- data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
- data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
- metadata +708 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: bitstrm.c (Formerly bits.c)
|
|
3
|
+
* Description: Bitstream read/write class member functions.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Tue Feb 19 10:59:44 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#include "mfcpch.h" //precompiled headers
|
|
21
|
+
#ifdef __MSW32__
|
|
22
|
+
#include <io.h>
|
|
23
|
+
#else
|
|
24
|
+
#include <unistd.h>
|
|
25
|
+
#endif
|
|
26
|
+
#include "fileerr.h"
|
|
27
|
+
#include "bitstrm.h"
|
|
28
|
+
|
|
29
|
+
const uinT16
|
|
30
|
+
R_BITSTREAM::bitmasks[17] = {
|
|
31
|
+
0, 1, 3, 7, 15, 31, 63, 127, 255,
|
|
32
|
+
511, 1023, 2047, 4095, 8191, 16383, 32767, 65535
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**********************************************************************
|
|
36
|
+
* R_BITSTREAM::open
|
|
37
|
+
*
|
|
38
|
+
* Establish a bitstream for reading.
|
|
39
|
+
**********************************************************************/
|
|
40
|
+
|
|
41
|
+
uinT16 R_BITSTREAM::open( //open for read
|
|
42
|
+
int fd //file to read
|
|
43
|
+
) {
|
|
44
|
+
bitfd = fd;
|
|
45
|
+
bufsize = read (fd, (char *) bitbuf, BITBUFSIZE * sizeof (uinT8));
|
|
46
|
+
//fill buffer
|
|
47
|
+
if (bufsize < 0) {
|
|
48
|
+
READFAILED.error ("R_BITSTREAM::open", TESSLOG, NULL);
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
bitword = bitbuf[0] | (bitbuf[1] << 8);
|
|
52
|
+
bitindex = 2;
|
|
53
|
+
bitbit = 16;
|
|
54
|
+
return (uinT16) bitword;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/**********************************************************************
|
|
59
|
+
* R_BITSTREAM::read_code
|
|
60
|
+
*
|
|
61
|
+
* Remove a code from the bitstream.
|
|
62
|
+
**********************************************************************/
|
|
63
|
+
|
|
64
|
+
uinT16 R_BITSTREAM::read_code( //take code out
|
|
65
|
+
uinT8 length //length of code
|
|
66
|
+
) {
|
|
67
|
+
bitbit -= length; //no of bits left
|
|
68
|
+
bitword >>= length; //remove bits
|
|
69
|
+
while (bitbit < 16) {
|
|
70
|
+
//get next byte
|
|
71
|
+
bitword |= bitbuf[bitindex++] << bitbit;
|
|
72
|
+
bitbit += 8;
|
|
73
|
+
if (bitindex >= bufsize) {
|
|
74
|
+
bufsize =
|
|
75
|
+
read (bitfd, (char *) bitbuf, BITBUFSIZE * sizeof (uinT8));
|
|
76
|
+
if (bufsize < 0) {
|
|
77
|
+
READFAILED.error ("R_BITSTREAM::read_code", TESSLOG, NULL);
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
bitindex = 0; //newly filled buffer
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return (uinT16) bitword;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
/**********************************************************************
|
|
88
|
+
* R_BITSTREAM::masks
|
|
89
|
+
*
|
|
90
|
+
* Read a code from the static member.
|
|
91
|
+
**********************************************************************/
|
|
92
|
+
|
|
93
|
+
uinT16 R_BITSTREAM::masks( //take code out
|
|
94
|
+
inT32 index //length of code
|
|
95
|
+
) {
|
|
96
|
+
return bitmasks[index];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
/**********************************************************************
|
|
101
|
+
* W_BITSTREAM::open
|
|
102
|
+
*
|
|
103
|
+
* Establish a bitstream for writing.
|
|
104
|
+
**********************************************************************/
|
|
105
|
+
|
|
106
|
+
void W_BITSTREAM::open( //open for write
|
|
107
|
+
int fd //file to write
|
|
108
|
+
) {
|
|
109
|
+
bitfd = fd;
|
|
110
|
+
bitindex = 0;
|
|
111
|
+
bitword = 0;
|
|
112
|
+
bitbit = 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
/**********************************************************************
|
|
117
|
+
* W_BITSTREAM::write_code
|
|
118
|
+
*
|
|
119
|
+
* Add a code to the bitstream.
|
|
120
|
+
**********************************************************************/
|
|
121
|
+
|
|
122
|
+
inT8 W_BITSTREAM::write_code( //take code out
|
|
123
|
+
uinT16 code, //code to add
|
|
124
|
+
uinT8 length //length of code
|
|
125
|
+
) {
|
|
126
|
+
if (length == 0) {
|
|
127
|
+
//flushing
|
|
128
|
+
if (bitbit > 0)
|
|
129
|
+
//get last byte
|
|
130
|
+
bitbuf[bitindex++] = (uinT8) bitword;
|
|
131
|
+
if ((bitindex > 0) &&
|
|
132
|
+
(write (bitfd, (char *) bitbuf, bitindex * sizeof (uinT8)) !=
|
|
133
|
+
(inT32) (bitindex * sizeof (uinT8)))) {
|
|
134
|
+
WRITEFAILED.error ("W_BITSTREAM::write_code", TESSLOG, "Flushing");
|
|
135
|
+
return -1;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
bitword |= code << bitbit; //add new code
|
|
140
|
+
bitbit += length;
|
|
141
|
+
while (bitbit >= 8) {
|
|
142
|
+
//get next byte
|
|
143
|
+
bitbuf[bitindex++] = (uinT8) bitword;
|
|
144
|
+
bitbit -= 8;
|
|
145
|
+
bitword >>= 8;
|
|
146
|
+
if (bitindex >= BITBUFSIZE) {
|
|
147
|
+
if (write (bitfd, (char *) bitbuf, bitindex * sizeof (uinT8))
|
|
148
|
+
!= (inT32) (bitindex * sizeof (uinT8))) {
|
|
149
|
+
WRITEFAILED.error ("W_BITSTREAM::write_code", TESSLOG, NULL);
|
|
150
|
+
return -1;
|
|
151
|
+
}
|
|
152
|
+
bitindex = 0; //newly filled buffer
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return 0; //success
|
|
157
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: bitstrm.h (Formerly bits.h)
|
|
3
|
+
* Description: R_BITSTREAM and W_BITSTREAM class definitions.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Tue Feb 19 10:44:22 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef BITSTRM_H
|
|
21
|
+
#define BITSTRM_H
|
|
22
|
+
|
|
23
|
+
#include "host.h"
|
|
24
|
+
|
|
25
|
+
#define BITBUFSIZE 8192 //bitstream buffer
|
|
26
|
+
|
|
27
|
+
class DLLSYM R_BITSTREAM
|
|
28
|
+
{
|
|
29
|
+
private:
|
|
30
|
+
int bitfd; //file descriptor
|
|
31
|
+
inT32 bitindex; //current byte
|
|
32
|
+
uinT32 bitword; //current word
|
|
33
|
+
inT32 bitbit; //current bit
|
|
34
|
+
inT32 bufsize; //size of buffer
|
|
35
|
+
uinT8 bitbuf[BITBUFSIZE]; //bitstream buffer
|
|
36
|
+
//for reading codes
|
|
37
|
+
static const uinT16 bitmasks[17];
|
|
38
|
+
|
|
39
|
+
public:
|
|
40
|
+
|
|
41
|
+
R_BITSTREAM() {
|
|
42
|
+
}; //Null constructor
|
|
43
|
+
|
|
44
|
+
uinT16 open( //open to read
|
|
45
|
+
int fd); //file to read
|
|
46
|
+
|
|
47
|
+
uinT16 read_code( //read a code
|
|
48
|
+
uinT8 length); //bits to lose
|
|
49
|
+
uinT16 masks( //read a code
|
|
50
|
+
inT32 index); //bits to lose
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
class DLLSYM W_BITSTREAM
|
|
54
|
+
{
|
|
55
|
+
private:
|
|
56
|
+
int bitfd; //file descriptor
|
|
57
|
+
inT32 bitindex; //current byte
|
|
58
|
+
uinT32 bitword; //current word
|
|
59
|
+
inT32 bitbit; //current bit
|
|
60
|
+
uinT8 bitbuf[BITBUFSIZE]; //bitstream buffer
|
|
61
|
+
|
|
62
|
+
public:
|
|
63
|
+
W_BITSTREAM() {
|
|
64
|
+
}; //Null constructor
|
|
65
|
+
|
|
66
|
+
void open( //open to write
|
|
67
|
+
int fd); //file to write
|
|
68
|
+
|
|
69
|
+
inT8 write_code( //write a code
|
|
70
|
+
uinT16 code, //code to write
|
|
71
|
+
uinT8 length); //bits to lose
|
|
72
|
+
};
|
|
73
|
+
#endif
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: img.h (Formerly image.h)
|
|
3
|
+
* Description: Class definition for the IMAGE class.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Thu Jun 07 13:42:37 BST 1990
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1990, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef IMG_H
|
|
21
|
+
#define IMG_H
|
|
22
|
+
|
|
23
|
+
#include "memry.h"
|
|
24
|
+
|
|
25
|
+
struct Pix;
|
|
26
|
+
|
|
27
|
+
#define MAXIMAGEWIDTH (900*14) /*14inch * 400dpi */
|
|
28
|
+
/*14inch * 400dpi */
|
|
29
|
+
#define MAXIMAGEHEIGHT (900*14)
|
|
30
|
+
|
|
31
|
+
#define COMPUTE_IMAGE_XDIM(xsize,bpp) ((bpp)>8 ? ((xsize)*(bpp)+7)/8 :((xsize)+8/(bpp)-1)/(8/(bpp)))
|
|
32
|
+
|
|
33
|
+
typedef inT8 (*IMAGE_OPENER) (int, inT32 *, inT32 *, inT8 *, inT8 *, inT32 *);
|
|
34
|
+
typedef inT8 (*IMAGE_READER) (int, uinT8 *, inT32, inT32, inT8, inT32);
|
|
35
|
+
typedef inT8 (*IMAGE_WRITER) (int, uinT8 *, inT32, inT32, inT8, inT8, inT32);
|
|
36
|
+
|
|
37
|
+
typedef uinT8 *COLOUR_PIX; //array of colours
|
|
38
|
+
enum COLOUR_PIX_NAME
|
|
39
|
+
{
|
|
40
|
+
RED_PIX,
|
|
41
|
+
GREEN_PIX,
|
|
42
|
+
BLUE_PIX
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
class DLLSYM IMAGELINE;
|
|
46
|
+
|
|
47
|
+
class DLLSYM IMAGE //encapsulated image
|
|
48
|
+
{
|
|
49
|
+
public:
|
|
50
|
+
IMAGE(); //constructor
|
|
51
|
+
|
|
52
|
+
~IMAGE () { //destructor
|
|
53
|
+
destroy(); //free memory
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
IMAGE & operator= ( //assignment
|
|
57
|
+
IMAGE & source);
|
|
58
|
+
|
|
59
|
+
inT8 read_header( //get file header
|
|
60
|
+
const char *name); //name of image
|
|
61
|
+
|
|
62
|
+
inT8 read( //get rest of image
|
|
63
|
+
inT32 buflines); //size of buffer
|
|
64
|
+
|
|
65
|
+
inT8 write( //write image
|
|
66
|
+
const char *name); //name to write
|
|
67
|
+
|
|
68
|
+
inT8 create( //create blank image
|
|
69
|
+
inT32 x, //x size required
|
|
70
|
+
inT32 y, //ysize required
|
|
71
|
+
inT8 bits_per_pixel); //bpp required
|
|
72
|
+
|
|
73
|
+
inT8 capture( //capture raw image
|
|
74
|
+
uinT8 *pixels, //pixels to capture
|
|
75
|
+
inT32 x, //x size required
|
|
76
|
+
inT32 y, //ysize required
|
|
77
|
+
inT8 bits_per_pixel); //bpp required
|
|
78
|
+
|
|
79
|
+
void destroy(); //destroy image
|
|
80
|
+
|
|
81
|
+
inT32 get_xsize() {
|
|
82
|
+
return xsize;
|
|
83
|
+
}
|
|
84
|
+
//access function
|
|
85
|
+
inT32 get_ysize() {
|
|
86
|
+
return ysize;
|
|
87
|
+
}
|
|
88
|
+
//access function
|
|
89
|
+
inT8 get_bpp() {
|
|
90
|
+
return bpp;
|
|
91
|
+
} //access function
|
|
92
|
+
inT8 get_bps() {
|
|
93
|
+
return bps;
|
|
94
|
+
} //bits per sample
|
|
95
|
+
BOOL8 white_high() { //photo interp
|
|
96
|
+
return photo_interp;
|
|
97
|
+
}
|
|
98
|
+
uinT8 get_white_level() { //access function
|
|
99
|
+
return (1 << bpp) - 1;
|
|
100
|
+
}
|
|
101
|
+
inT32 get_res() {
|
|
102
|
+
return res;
|
|
103
|
+
} //access function
|
|
104
|
+
void set_res( //set resolution
|
|
105
|
+
inT32 resolution) {
|
|
106
|
+
res = resolution;
|
|
107
|
+
}
|
|
108
|
+
uinT8 *get_buffer() {
|
|
109
|
+
return image;
|
|
110
|
+
}
|
|
111
|
+
//access function
|
|
112
|
+
|
|
113
|
+
uinT8 pixel( //access pixel
|
|
114
|
+
inT32 x, //x coord
|
|
115
|
+
inT32 y); //y coord
|
|
116
|
+
|
|
117
|
+
void fast_get_line( //get image line
|
|
118
|
+
inT32 x, //coord to start at
|
|
119
|
+
inT32 y, //line to get
|
|
120
|
+
inT32 width, //no of pixels to get
|
|
121
|
+
IMAGELINE *linebuf); //line to copy to
|
|
122
|
+
|
|
123
|
+
void get_line( //get image line
|
|
124
|
+
inT32 x, //coord to start at
|
|
125
|
+
inT32 y, //line to get
|
|
126
|
+
inT32 width, //no of pixels to get
|
|
127
|
+
IMAGELINE *linebuf, //line to copy to
|
|
128
|
+
inT32 margins); //size of margins
|
|
129
|
+
void get_column( //get image column
|
|
130
|
+
inT32 x, //coord to start at
|
|
131
|
+
inT32 y, //line to get
|
|
132
|
+
inT32 height, //no of pixels to get
|
|
133
|
+
IMAGELINE *linebuf, //line to copy to
|
|
134
|
+
inT32 margins); //size of margins
|
|
135
|
+
|
|
136
|
+
void fast_put_line( //put image line
|
|
137
|
+
inT32 x, //coord to start at
|
|
138
|
+
inT32 y, //line to put
|
|
139
|
+
inT32 width, //no of pixels to put
|
|
140
|
+
IMAGELINE *linebuf); //line to copy from
|
|
141
|
+
|
|
142
|
+
void put_line( //put image line
|
|
143
|
+
inT32 x, //coord to start at
|
|
144
|
+
inT32 y, //line to put
|
|
145
|
+
inT32 width, //no of pixels to put
|
|
146
|
+
IMAGELINE *linebuf, //line to copy from
|
|
147
|
+
inT32 margins); //size of margins
|
|
148
|
+
void put_column( //put image column
|
|
149
|
+
inT32 x, //coord to start at
|
|
150
|
+
inT32 y, //line to put
|
|
151
|
+
inT32 height, //no of pixels to put
|
|
152
|
+
IMAGELINE *linebuf, //line to copy to
|
|
153
|
+
inT32 margins); //size of margins
|
|
154
|
+
|
|
155
|
+
void check_legal_access( //check coords
|
|
156
|
+
inT32 x, //xcoord to check
|
|
157
|
+
inT32 y,
|
|
158
|
+
inT32 xext); //ycoord to check
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
// Methods to convert image types. Only available if Leptonica is available.
|
|
162
|
+
Pix* ToPix();
|
|
163
|
+
void FromPix(const Pix* src_pix);
|
|
164
|
+
|
|
165
|
+
void convolver ( //Map fn over window
|
|
166
|
+
inT32 win_width, //Window width
|
|
167
|
+
inT32 win_height, //Window height
|
|
168
|
+
void (*convolve) ( //Conv Function
|
|
169
|
+
uinT8 ** pixels, //Of window
|
|
170
|
+
uinT8 bytespp, //1 or 3 for colour
|
|
171
|
+
inT32 win_wd, //Window width
|
|
172
|
+
inT32 win_ht, //Window height
|
|
173
|
+
uinT8 ret_white_value, //White value to RETURN
|
|
174
|
+
uinT8 * result)); //Result pixel(s)
|
|
175
|
+
|
|
176
|
+
//copy rectangle
|
|
177
|
+
friend DLLSYM void copy_sub_image(IMAGE *source, //source image
|
|
178
|
+
inT32 xstart, //start coords
|
|
179
|
+
inT32 ystart,
|
|
180
|
+
inT32 xext, //extent to copy
|
|
181
|
+
inT32 yext,
|
|
182
|
+
IMAGE *dest, //destination image
|
|
183
|
+
inT32 xdest, //destination coords //shift to match bpp
|
|
184
|
+
inT32 ydest,
|
|
185
|
+
BOOL8 adjust_grey);
|
|
186
|
+
|
|
187
|
+
//enlarge rectangle
|
|
188
|
+
friend DLLSYM void enlarge_sub_image(IMAGE *source, //source image
|
|
189
|
+
inT32 xstart, //scaled coords
|
|
190
|
+
inT32 ystart,
|
|
191
|
+
IMAGE *dest, //destination image
|
|
192
|
+
inT32 xdest, //destination coords
|
|
193
|
+
inT32 ydest,
|
|
194
|
+
inT32 xext, //extent to copy
|
|
195
|
+
inT32 yext,
|
|
196
|
+
inT32 scale, //scale factor
|
|
197
|
+
BOOL8 adjust_grey); //shift to match bpp
|
|
198
|
+
|
|
199
|
+
//reduce rectangle
|
|
200
|
+
friend DLLSYM void fast_reduce_sub_image(IMAGE *source, //source image
|
|
201
|
+
inT32 xstart, //start coords
|
|
202
|
+
inT32 ystart,
|
|
203
|
+
inT32 xext, //extent to copy
|
|
204
|
+
inT32 yext,
|
|
205
|
+
IMAGE *dest, //destination image
|
|
206
|
+
inT32 xdest, //destination coords
|
|
207
|
+
inT32 ydest,
|
|
208
|
+
inT32 scale, //scale factor
|
|
209
|
+
BOOL8 adjust_grey); //shift to match bpp
|
|
210
|
+
|
|
211
|
+
//reduce rectangle
|
|
212
|
+
friend DLLSYM void reduce_sub_image(IMAGE *source, //source image
|
|
213
|
+
inT32 xstart, //start coords
|
|
214
|
+
inT32 ystart,
|
|
215
|
+
inT32 xext, //extent to copy
|
|
216
|
+
inT32 yext,
|
|
217
|
+
IMAGE *dest, //destination image
|
|
218
|
+
inT32 xdest, //destination coords
|
|
219
|
+
inT32 ydest,
|
|
220
|
+
inT32 scale, //scale factor
|
|
221
|
+
BOOL8 adjust_grey); //shift to match bpp
|
|
222
|
+
|
|
223
|
+
private:
|
|
224
|
+
inT8 bpp; //bits per pixel
|
|
225
|
+
inT8 bps; //bits per sample
|
|
226
|
+
inT8 bytespp; //per pixel
|
|
227
|
+
inT8 lineskip; //waste bytes on line
|
|
228
|
+
BOOL8 captured; //true if buffer captured
|
|
229
|
+
inT8 photo_interp; //interpretation
|
|
230
|
+
inT32 xsize, ysize; //size of image
|
|
231
|
+
inT32 res; //resolution
|
|
232
|
+
uinT8 *image; //the actual image
|
|
233
|
+
inT32 xdim; //bytes per line
|
|
234
|
+
inT32 bufheight; //height of buffer
|
|
235
|
+
int fd; //open file descriptor
|
|
236
|
+
IMAGE_READER reader; //reading function
|
|
237
|
+
inT32 ymin; //bottom line in mem
|
|
238
|
+
inT32 ymax; //top line in mem+1
|
|
239
|
+
inT8 bufread( //read some more
|
|
240
|
+
inT32 y); //ycoord required
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
class DLLSYM IMAGELINE //one line of image
|
|
244
|
+
{
|
|
245
|
+
public:
|
|
246
|
+
uinT8 * pixels; //image pixels
|
|
247
|
+
inT8 bpp; //bits per pixel
|
|
248
|
+
COLOUR_PIX operator[] ( //colour pixels
|
|
249
|
+
inT32 index) {
|
|
250
|
+
return &pixels[index * 3]; //coercion access op
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
IMAGELINE() { //default constructor
|
|
254
|
+
linewidth = 0;
|
|
255
|
+
line = NULL;
|
|
256
|
+
pixels = line;
|
|
257
|
+
bpp = 8;
|
|
258
|
+
}
|
|
259
|
+
void init( //setup size
|
|
260
|
+
inT32 width) { //size of line
|
|
261
|
+
if (width <= 0)
|
|
262
|
+
width = MAXIMAGEWIDTH;
|
|
263
|
+
if (width > linewidth) {
|
|
264
|
+
if (line != NULL)
|
|
265
|
+
free_mem(line);
|
|
266
|
+
linewidth = width;
|
|
267
|
+
line = (uinT8 *) alloc_mem (linewidth * sizeof (uinT8));
|
|
268
|
+
}
|
|
269
|
+
pixels = line;
|
|
270
|
+
bpp = 8;
|
|
271
|
+
}
|
|
272
|
+
~IMAGELINE () { //destructor
|
|
273
|
+
if (line != NULL)
|
|
274
|
+
free_mem(line);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
void set_bpp( //For colour
|
|
278
|
+
inT8 new_bpp) {
|
|
279
|
+
if (new_bpp <= 8)
|
|
280
|
+
bpp = 8;
|
|
281
|
+
else
|
|
282
|
+
bpp = 24;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
void init() {
|
|
286
|
+
if (line == NULL)
|
|
287
|
+
init (0);
|
|
288
|
+
else {
|
|
289
|
+
pixels = line;
|
|
290
|
+
bpp = 8;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
friend void IMAGE::get_line( //copies a line
|
|
295
|
+
inT32 x, //coord to start at
|
|
296
|
+
inT32 y, //line to get
|
|
297
|
+
inT32 width, //no of pixels to get
|
|
298
|
+
IMAGELINE *linebuf, //line to copy to
|
|
299
|
+
inT32 margins); //size of margins
|
|
300
|
+
//copies a column
|
|
301
|
+
friend void IMAGE::get_column(inT32 x, //coord to start at
|
|
302
|
+
inT32 y, //line to get
|
|
303
|
+
inT32 height, //no of pixels to get
|
|
304
|
+
IMAGELINE *linebuf, //line to copy to
|
|
305
|
+
inT32 margins); //size of margins
|
|
306
|
+
|
|
307
|
+
friend void IMAGE::put_line( //writes a line
|
|
308
|
+
inT32 x, //coord to start at
|
|
309
|
+
inT32 y, //line to put
|
|
310
|
+
inT32 width, //no of pixels to put
|
|
311
|
+
IMAGELINE *linebuf, //line to copy from
|
|
312
|
+
inT32 margins); //size of margins
|
|
313
|
+
//writes a column
|
|
314
|
+
friend void IMAGE::put_column(inT32 x, //coord to start at
|
|
315
|
+
inT32 y, //line to put
|
|
316
|
+
inT32 height, //no of pixels to put
|
|
317
|
+
IMAGELINE *linebuf, //line to copy from
|
|
318
|
+
inT32 margins); //size of margins
|
|
319
|
+
|
|
320
|
+
//may just change pointer
|
|
321
|
+
friend void IMAGE::fast_get_line(inT32 x, //coord to start at
|
|
322
|
+
inT32 y, //line to get
|
|
323
|
+
inT32 width, //no of pixels to get
|
|
324
|
+
IMAGELINE *linebuf); //line to copy to
|
|
325
|
+
|
|
326
|
+
//may just change pointer
|
|
327
|
+
friend void IMAGE::fast_put_line(inT32 x, //coord to start at
|
|
328
|
+
inT32 y, //line to get
|
|
329
|
+
inT32 width, //no of pixels to get
|
|
330
|
+
IMAGELINE *linebuf); //line to copy to
|
|
331
|
+
|
|
332
|
+
private:
|
|
333
|
+
uinT8 * line; //local buffer
|
|
334
|
+
inT32 linewidth; //width of buffer
|
|
335
|
+
};
|
|
336
|
+
#endif
|