rtesseract 1.2.0 → 1.2.1
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.
- checksums.yaml +4 -4
- data/README.rdoc +1 -0
- data/VERSION +1 -1
- data/lib/processors/quick_magick.rb +5 -1
- data/lib/rtesseract.rb +10 -14
- data/rtesseract.gemspec +3 -3
- data/spec/rtesseract_spec.rb +15 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2184c2ed467331288d1f86523677d1dd108cd988
|
4
|
+
data.tar.gz: 63f39ebbdb2ba9e945ac8f503bd542a7b4fce46c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b247ec0bbd34adbf345ac57034244c51550dbb7e5d733e566bfe8a70e60cb8f2afb395890c520d251d03bc51d0a11308ea9995bcd42c76cb42e17a9c9c7af598
|
7
|
+
data.tar.gz: 553ef6e51ec48ca563d96539efadeffed32938e58e034e036d52c93492946e072b66001039803bf3324ae65ee04c5ee61edd00eb6cf6f314fb53eea5f0547ac7
|
data/README.rdoc
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
{<img src="https://travis-ci.org/dannnylo/rtesseract.png?branch=master" alt="Build Status" />}[https://travis-ci.org/dannnylo/rtesseract]
|
4
4
|
{<img src="https://coveralls.io/repos/dannnylo/rtesseract/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/dannnylo/rtesseract?branch=master]
|
5
5
|
{<img src="https://codeclimate.com/github/dannnylo/rtesseract.png" />}[https://codeclimate.com/github/dannnylo/rtesseract]
|
6
|
+
{<img src="http://badgr.co/gittip/dannnylo.png" />}[https://www.gittip.com/dannnylo/]
|
6
7
|
|
7
8
|
Ruby library for working with the Tesseract OCR.
|
8
9
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
@@ -14,11 +14,15 @@ module QuickMagickProcessor
|
|
14
14
|
cat = source.is_a?(Pathname) ? read_with_processor(source.to_s) : source
|
15
15
|
cat.compress = 'None'
|
16
16
|
cat.format = 'tif'
|
17
|
-
cat.crop("#{w}x#{h}+#{x}+#{y}")
|
17
|
+
cat.crop("#{w}x#{h}+#{x}+#{y}") if need_crop?( x, y, w, h)
|
18
18
|
cat.write tmp_file.path.to_s
|
19
19
|
tmp_file
|
20
20
|
end
|
21
21
|
|
22
|
+
def self.need_crop?(x = nil, y = nil, w = nil, h = nil)
|
23
|
+
x.to_f + y.to_f + w.to_f + h.to_f > 0
|
24
|
+
end
|
25
|
+
|
22
26
|
def self.read_with_processor(path)
|
23
27
|
QuickMagick::Image.read(path.to_s).first
|
24
28
|
end
|
data/lib/rtesseract.rb
CHANGED
@@ -29,7 +29,7 @@ class RTesseract
|
|
29
29
|
def initialize(src = '', options = {})
|
30
30
|
@options = command_line_options(options)
|
31
31
|
@value, @x, @y, @w, @h = ['']
|
32
|
-
choose_processor!
|
32
|
+
@processor = RTesseract.choose_processor!(@processor)
|
33
33
|
@source = @processor.image?(src) ? src : Pathname.new(src)
|
34
34
|
end
|
35
35
|
|
@@ -59,12 +59,9 @@ class RTesseract
|
|
59
59
|
|
60
60
|
def self.read(src = nil, options = {}, &block)
|
61
61
|
fail RTesseract::ImageNotSelectedError if src.nil?
|
62
|
-
processor = options.delete(:processor) || options.delete('processor')
|
63
|
-
|
64
|
-
|
65
|
-
else
|
66
|
-
image = RMagickProcessor.read_with_processor(src.to_s)
|
67
|
-
end
|
62
|
+
processor = RTesseract.choose_processor!(options.delete(:processor) || options.delete('processor'))
|
63
|
+
image = processor.read_with_processor(src.to_s)
|
64
|
+
|
68
65
|
yield image
|
69
66
|
object = RTesseract.new('', options)
|
70
67
|
object.from_blob(image.to_blob)
|
@@ -123,7 +120,7 @@ class RTesseract
|
|
123
120
|
|
124
121
|
# Page Segment Mode
|
125
122
|
def psm
|
126
|
-
@psm.nil? ? '' : " -psm #{@psm} "
|
123
|
+
(@psm.nil? ? '' : " -psm #{@psm} ")
|
127
124
|
rescue
|
128
125
|
''
|
129
126
|
end
|
@@ -193,17 +190,16 @@ class RTesseract
|
|
193
190
|
to_s.gsub(' ', '').gsub("\n", '').gsub("\r", '')
|
194
191
|
end
|
195
192
|
|
196
|
-
|
197
|
-
|
198
|
-
def choose_processor!
|
199
|
-
@processor = if MiniMagickProcessor.a_name?(@processor.to_s)
|
193
|
+
def self.choose_processor!(processor)
|
194
|
+
processor = if MiniMagickProcessor.a_name?(processor.to_s)
|
200
195
|
MiniMagickProcessor
|
201
|
-
elsif QuickMagickProcessor.a_name?(
|
196
|
+
elsif QuickMagickProcessor.a_name?(processor.to_s)
|
202
197
|
QuickMagickProcessor
|
203
198
|
else
|
204
199
|
RMagickProcessor
|
205
200
|
end
|
206
|
-
|
201
|
+
processor.setup
|
202
|
+
processor
|
207
203
|
end
|
208
204
|
end
|
209
205
|
|
data/rtesseract.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: rtesseract 1.2.
|
5
|
+
# stub: rtesseract 1.2.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "rtesseract"
|
9
|
-
s.version = "1.2.
|
9
|
+
s.version = "1.2.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Danilo Jeremias da Silva"]
|
14
|
-
s.date = "2014-02-
|
14
|
+
s.date = "2014-02-26"
|
15
15
|
s.description = "Ruby library for working with the Tesseract OCR."
|
16
16
|
s.email = "dannnylo@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
data/spec/rtesseract_spec.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
# encoding: UTF-8
|
3
3
|
require 'pathname'
|
4
|
+
class MakeStringError
|
5
|
+
def to_s
|
6
|
+
raise "error"
|
7
|
+
end
|
8
|
+
end
|
4
9
|
|
5
10
|
describe "Rtesseract" do
|
6
11
|
before do
|
@@ -64,6 +69,9 @@ describe "Rtesseract" do
|
|
64
69
|
RTesseract.new(@image_tiff,{:lang=>"por"}).to_s_without_spaces.should eql("43ZZ")
|
65
70
|
|
66
71
|
RTesseract.new(@image_tiff,{:lang=>"eng"}).lang.should eql(" -l eng ")
|
72
|
+
|
73
|
+
#Inválid lang object
|
74
|
+
RTesseract.new(@image_tiff,{:lang=>MakeStringError.new}).lang.should eql("")
|
67
75
|
end
|
68
76
|
|
69
77
|
it " be configurable" do
|
@@ -102,6 +110,10 @@ describe "Rtesseract" do
|
|
102
110
|
MiniMagickProcessor.a_name?('teste').should == false
|
103
111
|
MiniMagickProcessor.a_name?('mini_magick').should == true
|
104
112
|
MiniMagickProcessor.a_name?('MiniMagickProcessor').should == true
|
113
|
+
|
114
|
+
QuickMagickProcessor.a_name?('teste').should == false
|
115
|
+
QuickMagickProcessor.a_name?('quick_magick').should == true
|
116
|
+
QuickMagickProcessor.a_name?('QuickMagickProcessor').should == true
|
105
117
|
end
|
106
118
|
|
107
119
|
it " change image in a block" do
|
@@ -116,8 +128,6 @@ describe "Rtesseract" do
|
|
116
128
|
end
|
117
129
|
test.to_s_without_spaces.should eql("3R8Z")
|
118
130
|
|
119
|
-
require 'mini_magick'
|
120
|
-
|
121
131
|
test = RTesseract.read(@path.join("images","test.jpg").to_s,{:lang=>'en', :processor => 'mini_magick'}) do |image|
|
122
132
|
#image.white_threshold(245)
|
123
133
|
image.gravity "south"
|
@@ -128,6 +138,9 @@ describe "Rtesseract" do
|
|
128
138
|
it " get a error" do
|
129
139
|
expect{ RTesseract.new(@path.join("images","test.jpg").to_s, {:command => "tesseract_error"}).to_s }.to raise_error(RTesseract::ConversionError)
|
130
140
|
expect{ RTesseract.new(@path.join("images","test_not_exists.png").to_s).to_s }.to raise_error(RTesseract::ImageNotSelectedError)
|
141
|
+
|
142
|
+
#Inválid psm object
|
143
|
+
RTesseract.new(@image_tiff,{:psm=>MakeStringError.new}).psm.should eql("")
|
131
144
|
end
|
132
145
|
|
133
146
|
it "remove a file" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtesseract
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danilo Jeremias da Silva
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|