libis-format 0.9.28 → 0.9.29
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/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
|