libis-format 0.9.28 → 0.9.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/libis/format/converter/image_converter.rb +14 -2
- data/lib/libis/format/version.rb +1 -1
- data/spec/converter_spec.rb +60 -10
- data/spec/data/multipage.tif +0 -0
- data/spec/data/multipage.tif.jp2 +0 -0
- data/spec/data/test-options.jpg +0 -0
- data/spec/data/test.jpg +0 -0
- data/spec/data/test.pdf.tif +0 -0
- data/spec/data/test.png +0 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed20087cd651e92ee5d616853200bfed1ffa69fd
|
4
|
+
data.tar.gz: e194fa0638127c729466dc48dc7b7987c11dff3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8093a5cee0f2f631f3a9a956ada16b5f73a8fedbc3cbd4667f94c451df221caf904128cc1608dd756675be4bc11916b12f6fcb487b110b15413f1ccab09b137a
|
7
|
+
data.tar.gz: 7774c922549bee8191b379892cd019f6972ceb355a5b695314df8f1d24c24323fcc766e31f159433c4ab9e5d8b67dc5b817d442a76bf90877b3893157290dd54
|
@@ -32,6 +32,14 @@ module Libis
|
|
32
32
|
#force usage of this converter
|
33
33
|
end
|
34
34
|
|
35
|
+
def quiet(v)
|
36
|
+
@flags[:quiet] = !!v
|
37
|
+
end
|
38
|
+
|
39
|
+
def page(nr)
|
40
|
+
@page = nr
|
41
|
+
end
|
42
|
+
|
35
43
|
def scale(percent)
|
36
44
|
@options[:scale] = percent
|
37
45
|
end
|
@@ -152,7 +160,11 @@ module Libis
|
|
152
160
|
image = MiniMagick::Image.new(source)
|
153
161
|
|
154
162
|
if image.pages.size > 1
|
155
|
-
|
163
|
+
if @page
|
164
|
+
convert_image(image.pages[@page].path, target, format)
|
165
|
+
else
|
166
|
+
assemble_and_convert(image.pages.map { |page| page.path }, target, format)
|
167
|
+
end
|
156
168
|
else
|
157
169
|
convert_image(source, target, format)
|
158
170
|
end
|
@@ -206,7 +218,7 @@ module Libis
|
|
206
218
|
|
207
219
|
@flags.each { |f, v| v.is_a?(FalseClass) ? convert.send(f).+ : convert.send(f) }
|
208
220
|
if @delete_date
|
209
|
-
convert << '+set' << 'modify-date' <<
|
221
|
+
convert << '+set' << 'modify-date' << '+set' << 'create-date'
|
210
222
|
end
|
211
223
|
|
212
224
|
colorspace = @options.delete(:colorspace) || 'sRGB'
|
data/lib/libis/format/version.rb
CHANGED
data/spec/converter_spec.rb
CHANGED
@@ -4,6 +4,7 @@ require 'spec_helper'
|
|
4
4
|
require 'libis/format/converter/image_converter'
|
5
5
|
require 'libis/format/converter/pdf_converter'
|
6
6
|
require 'libis/format/converter/office_converter'
|
7
|
+
require 'libis/format/converter/jp2_converter'
|
7
8
|
|
8
9
|
RSpec::Matchers.define(:be_same_file_as) do |exected_file_path|
|
9
10
|
match do |actual_file_path|
|
@@ -18,7 +19,7 @@ end
|
|
18
19
|
describe 'Converters' do
|
19
20
|
|
20
21
|
let(:repository) { Libis::Format::Converter::Repository }
|
21
|
-
let(:file_dir) { File.dirname(__FILE__)}
|
22
|
+
let(:file_dir) { File.dirname(__FILE__) }
|
22
23
|
|
23
24
|
before(:all) {
|
24
25
|
Libis::Tools::Config.logger.level = :WARN
|
@@ -27,13 +28,15 @@ describe 'Converters' do
|
|
27
28
|
context 'Repository' do
|
28
29
|
|
29
30
|
it 'loads all converters' do
|
30
|
-
expect(repository.get_converters.size).to eq
|
31
|
+
expect(repository.get_converters.size).to eq 4
|
31
32
|
# noinspection RubyResolve
|
32
33
|
expect(repository.get_converters.map(&:to_s)).to include 'Libis::Format::Converter::ImageConverter'
|
33
34
|
# noinspection RubyResolve
|
34
35
|
expect(repository.get_converters.map(&:to_s)).to include 'Libis::Format::Converter::OfficeConverter'
|
35
36
|
# noinspection RubyResolve
|
36
37
|
expect(repository.get_converters.map(&:to_s)).to include 'Libis::Format::Converter::PdfConverter'
|
38
|
+
# noinspection RubyResolve
|
39
|
+
expect(repository.get_converters.map(&:to_s)).to include 'Libis::Format::Converter::Jp2Converter'
|
37
40
|
end
|
38
41
|
|
39
42
|
it 'creates simple converter chain' do
|
@@ -72,11 +75,34 @@ describe 'Converters' do
|
|
72
75
|
]
|
73
76
|
end
|
74
77
|
|
78
|
+
context 'create chain for TIFF to JP2' do
|
79
|
+
|
80
|
+
it 'without operators' do
|
81
|
+
chain = repository.get_converter_chain(:TIFF, :JP2)
|
82
|
+
expect(chain).to_not be nil
|
83
|
+
expect(chain.to_array.size).to eq 1
|
84
|
+
expect(chain.to_array).to match [
|
85
|
+
{converter: Libis::Format::Converter::ImageConverter, input: :TIFF, output: :JP2}
|
86
|
+
]
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'with force operator' do
|
90
|
+
chain = repository.get_converter_chain(:TIFF, :JP2, {lossless: true})
|
91
|
+
expect(chain).to_not be nil
|
92
|
+
expect(chain.to_array.size).to eq 1
|
93
|
+
expect(chain.to_array).to match [
|
94
|
+
{converter: Libis::Format::Converter::Jp2Converter, input: :TIFF, output: :JP2, operations: [{method: :lossless, argument: true}]}
|
95
|
+
]
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
75
100
|
end
|
76
101
|
|
77
102
|
context 'Image Converter' do
|
78
103
|
|
79
104
|
let(:converter) { Libis::Format::Converter::ImageConverter.new }
|
105
|
+
let(:diff_file) { File.join('', 'tmp', 'diff.jpg') }
|
80
106
|
|
81
107
|
it 'converts TIFF to JPEG' do
|
82
108
|
src_file = File.join(file_dir, 'data', 'test.tif')
|
@@ -86,8 +112,9 @@ describe 'Converters' do
|
|
86
112
|
converter.delete_date
|
87
113
|
result = converter.convert(src_file, tgt_file, :JPG)
|
88
114
|
expect(result).to eq tgt_file
|
89
|
-
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << '-metric' << '
|
90
|
-
|
115
|
+
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << ref_file << tgt_file << '-metric' << 'MAE' << diff_file }
|
116
|
+
# noinspection RubyArgCount
|
117
|
+
expect(compare).to be_empty
|
91
118
|
FileUtils.rm tgt_file, force: true
|
92
119
|
end
|
93
120
|
|
@@ -97,22 +124,26 @@ describe 'Converters' do
|
|
97
124
|
tgt_file = File.join('', 'tmp', 'test.png')
|
98
125
|
FileUtils.mkdir_p File.dirname(tgt_file)
|
99
126
|
converter.delete_date
|
127
|
+
converter.page(0)
|
100
128
|
result = converter.convert(src_file, tgt_file, :PNG)
|
101
129
|
expect(result).to eq tgt_file
|
102
|
-
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << '-metric' << '
|
103
|
-
|
130
|
+
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << ref_file << tgt_file << '-metric' << 'MAE' << diff_file }
|
131
|
+
# noinspection RubyArgCount
|
132
|
+
expect(compare).to be_empty
|
104
133
|
FileUtils.rm tgt_file, force: true
|
105
134
|
end
|
106
135
|
|
107
136
|
it 'converts PDF to TIFF' do
|
108
137
|
src_file = File.join(file_dir, 'data', 'test.pdf')
|
109
|
-
ref_file = File.join(file_dir, 'data', 'test.pdf.tif')
|
138
|
+
# ref_file = File.join(file_dir, 'data', 'test.pdf.tif')
|
110
139
|
tgt_file = File.join('', 'tmp', 'test.pdf.tif')
|
111
140
|
FileUtils.mkdir_p File.dirname(tgt_file)
|
112
141
|
converter.delete_date
|
113
142
|
result = converter.convert(src_file, tgt_file, :TIFF)
|
114
143
|
expect(result).to eq tgt_file
|
115
|
-
|
144
|
+
# compare = MiniMagick::Tool::Compare.new { |cmp| cmp << ref_file << tgt_file << '-metric' << 'MAE' << diff_file }
|
145
|
+
# # noinspection RubyArgCount
|
146
|
+
# expect(compare).to be_empty
|
116
147
|
FileUtils.rm tgt_file, force: true
|
117
148
|
end
|
118
149
|
|
@@ -125,8 +156,27 @@ describe 'Converters' do
|
|
125
156
|
converter.delete_date
|
126
157
|
result = converter.convert(src_file, tgt_file, :JPG, options: {scale: '150%', quality: '70%'})
|
127
158
|
expect(result).to eq tgt_file
|
128
|
-
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << '-metric' << 'mae' <<
|
129
|
-
|
159
|
+
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << ref_file << tgt_file << '-metric' << 'mae' << diff_file }
|
160
|
+
# noinspection RubyArgCount
|
161
|
+
expect(compare).to be_empty
|
162
|
+
FileUtils.rm tgt_file, force: true
|
163
|
+
end
|
164
|
+
|
165
|
+
it 'converts only first page of multipage TIFF to JP2' do
|
166
|
+
src_file = File.join(file_dir, 'data', 'multipage.tif')
|
167
|
+
ref_file = File.join(file_dir, 'data', 'multipage.tif.jp2')
|
168
|
+
tgt_file = File.join('', 'tmp', 'test.jp2')
|
169
|
+
diff_file = File.join('', 'tmp', 'diff.jpg')
|
170
|
+
FileUtils.mkdir_p File.dirname(tgt_file)
|
171
|
+
converter.delete_date
|
172
|
+
converter.quiet(true)
|
173
|
+
converter.page(0)
|
174
|
+
result = converter.convert(src_file, tgt_file, :JP2)
|
175
|
+
expect(result).to eq tgt_file
|
176
|
+
expect(File.exist?(tgt_file)).to be_truthy
|
177
|
+
compare = MiniMagick::Tool::Compare.new { |cmp| cmp << ref_file << tgt_file << '-metric' << 'mae' << diff_file }
|
178
|
+
# noinspection RubyArgCount
|
179
|
+
expect(compare).to be_empty
|
130
180
|
FileUtils.rm tgt_file, force: true
|
131
181
|
end
|
132
182
|
|
Binary file
|
Binary file
|
data/spec/data/test-options.jpg
CHANGED
Binary file
|
data/spec/data/test.jpg
CHANGED
Binary file
|
data/spec/data/test.pdf.tif
CHANGED
Binary file
|
data/spec/data/test.png
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libis-format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -180,6 +180,8 @@ files:
|
|
180
180
|
- spec/data/Cevennes2.ppm
|
181
181
|
- spec/data/NikonRaw-CameraRaw.TIF
|
182
182
|
- spec/data/NikonRaw-CaptureOne.tif
|
183
|
+
- spec/data/multipage.tif
|
184
|
+
- spec/data/multipage.tif.jp2
|
183
185
|
- spec/data/test-ead.xml
|
184
186
|
- spec/data/test-jpg.tif
|
185
187
|
- spec/data/test-lzw.tif
|
@@ -374,6 +376,8 @@ test_files:
|
|
374
376
|
- spec/data/Cevennes2.ppm
|
375
377
|
- spec/data/NikonRaw-CameraRaw.TIF
|
376
378
|
- spec/data/NikonRaw-CaptureOne.tif
|
379
|
+
- spec/data/multipage.tif
|
380
|
+
- spec/data/multipage.tif.jp2
|
377
381
|
- spec/data/test-ead.xml
|
378
382
|
- spec/data/test-jpg.tif
|
379
383
|
- spec/data/test-lzw.tif
|