image-file 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
4
+ require 'image_file/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'image-file'
8
+ s.version = ImageFile::Version::STRING
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ['Kenta Murata']
11
+ s.email = 'mrkn@mrkn.jp'
12
+ s.homepage = 'http://github.com/mrkn/image-file'
13
+ s.summary = "image-file-#{ImageFile::Version::STRING}"
14
+ s.description = 'A library for handling image files'
15
+
16
+ s.rubygems_version = '1.3.7'
17
+ #s.rubyforge_project = 'image-file'
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map {|f| File.basename(f) }
22
+ s.extra_rdoc_files = []
23
+ s.rdoc_options = ['--charset=UTF-8']
24
+ s.require_path = 'lib'
25
+ end
data/lib/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ *.so
2
+ *.bundle
3
+ *.dll
@@ -0,0 +1,8 @@
1
+ module ImageFile
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ MICRO = 0
6
+ STRING = [MAJOR, MINOR, MICRO].join('.')
7
+ end
8
+ end
data/pkg/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *
2
+ !.gitignore
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ module ImageFile
4
+ describe Image, ".new" do
5
+ it "should raise ArgumentError without pixel format" do
6
+ expect {
7
+ described_class.new(width:42, height:42)
8
+ }.to raise_error(ArgumentError)
9
+ end
10
+
11
+ it "should raise ArgumentError without width" do
12
+ expect {
13
+ described_class.new(pixel_format: :RGB24, height:42)
14
+ }.to raise_error(ArgumentError)
15
+ end
16
+
17
+ it "should raise ArgumentError without height" do
18
+ expect {
19
+ described_class.new(pixel_format: :RGB24, width:42)
20
+ }.to raise_error(ArgumentError)
21
+ end
22
+ end
23
+
24
+ describe Image do
25
+ subject { Image.new(width:42, height:42, pixel_format: :RGB24) }
26
+
27
+ its(:width) { should be == 42 }
28
+ its(:height) { should be == 42 }
29
+ its(:row_stride) { should be == 42 }
30
+ its(:pixel_format) { should be == :RGB24 }
31
+
32
+ describe "create_cairo_surface" do
33
+ subject { Image.new(width:42, height:42, pixel_format: :RGB24).create_cairo_surface }
34
+ it { should be_a(Cairo::Surface) }
35
+ end
36
+ end
37
+
38
+ describe Image, "with row-stride" do
39
+ subject { Image.new(width:42, height:42, pixel_format: :RGB24, row_stride:64) }
40
+
41
+ its(:width) { should be == 42 }
42
+ its(:height) { should be == 42 }
43
+ its(:row_stride) { should be == 64 }
44
+ its(:pixel_format) { should be == :RGB24 }
45
+ end
46
+ end
47
+
48
+ # vim: foldmethod=marker
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ RECOMPILE_CAT_JPG = File.expand_path(File.join('support', 'recompile_cat.jpg'), SPEC_DIR).freeze
4
+ RECOMPILE_CAT_CMYK_JPG = File.expand_path(File.join('support', 'recompile_cat_CMYK.jpg'), SPEC_DIR).freeze
5
+ RECOMPILE_CAT_PNG = RECOMPILE_CAT_JPG.sub(/\.jpg\Z/, '.png').freeze
6
+
7
+ module ImageFile
8
+ describe JpegReader do
9
+ context "created by open" do
10
+ subject { described_class.open(RECOMPILE_CAT_JPG) }
11
+ it { should be_source_will_be_closed }
12
+ end
13
+ end
14
+
15
+ describe JpegReader, "for 'recompile_cat.jpg'" do #{{{
16
+ subject { described_class.open(RECOMPILE_CAT_JPG) }
17
+
18
+ its(:image_width) { should be == 500 }
19
+ its(:image_height) { should be == 300 }
20
+ its(:num_components) { should be == 3 }
21
+ its(:jpeg_color_space) { should be == :YCbCr }
22
+
23
+ its(:out_color_space) { should be == :RGB }
24
+ its(:scale) { should be == 1 }
25
+ its(:output_gamma) { should be == 1 }
26
+ it { should_not be_buffered_image }
27
+ its(:dct_method) { should be == :ISLOW }
28
+ it { should_not be_quantize_colors }
29
+ its(:dither_mode) { should be == :FS }
30
+
31
+ its(:output_width) { should be == 500 }
32
+ its(:output_height) { should be == 300 }
33
+ its(:output_components) { should be == 3 }
34
+
35
+ context "with scale of 1/2" do
36
+ before { subject.scale = 1.quo(2) }
37
+ its(:output_width) { should be == 250 }
38
+ its(:output_height) { should be == 150 }
39
+ end
40
+
41
+ context "after setting output_gamma to 1.2" do
42
+ before { subject.output_gamma = 1.2 }
43
+ its(:output_gamma) { should be == 1.2 }
44
+ end
45
+
46
+ describe :read_image do
47
+ subject { described_class.open(RECOMPILE_CAT_JPG).read_image }
48
+ its(:width) { should be == 500 }
49
+ its(:height) { should be == 300 }
50
+ its(:row_stride) { should be == 500 }
51
+ its(:pixel_format) { should be == :RGB24 }
52
+ end
53
+
54
+ describe :read_image, "with row_stride:42 (< width)" do
55
+ subject { described_class.open(RECOMPILE_CAT_JPG).read_image(row_stride:42) }
56
+ its(:row_stride) { should be == 500 }
57
+ end
58
+
59
+ describe :read_image, "with row_stride:512 (> width)" do
60
+ subject { described_class.open(RECOMPILE_CAT_JPG).read_image(row_stride:512) }
61
+ its(:row_stride) { should be == 512 }
62
+ end
63
+
64
+ describe :read_image, "with pixel_format: :ARGB32" do
65
+ subject { described_class.open(RECOMPILE_CAT_JPG).read_image(pixel_format: :ARGB32) }
66
+ its(:pixel_format) { should be == :ARGB32 }
67
+ end
68
+
69
+ describe :read_image, "with pixel_format: :xyzzy" do
70
+ subject { described_class.open(RECOMPILE_CAT_JPG).read_image(pixel_format: :xyzzy) }
71
+ its(:pixel_format) { should be == :RGB24 }
72
+ end
73
+ end #}}}
74
+
75
+ describe JpegReader, "for 'recompile_cat_CMYK.jpg'" do #{{{
76
+ subject { described_class.open(RECOMPILE_CAT_CMYK_JPG) }
77
+ its(:num_components) { should be == 4 }
78
+ its(:jpeg_color_space) { should be == :CMYK }
79
+ its(:out_color_space) { should be == :CMYK }
80
+
81
+ describe :read_image do
82
+ subject { described_class.open(RECOMPILE_CAT_CMYK_JPG).read_image }
83
+ its(:width) { should be == 500 }
84
+ its(:height) { should be == 300 }
85
+ its(:row_stride) { should be == 500 }
86
+ its(:pixel_format) { should be == :RGB24 }
87
+ end
88
+ end #}}}
89
+
90
+ describe JpegReader, "for 'recompile_cat.png'" do #{{{
91
+ subject { described_class.open(RECOMPILE_CAT_PNG) }
92
+
93
+ describe :image_width do
94
+ it { expect { subject.image_width }.to raise_error(described_class::Error) }
95
+ end
96
+
97
+ describe :image_height do
98
+ it { expect { subject.image_height }.to raise_error(described_class::Error) }
99
+ end
100
+
101
+ describe :num_components do
102
+ it { expect { subject.num_components }.to raise_error(described_class::Error) }
103
+ end
104
+
105
+ describe :jpeg_color_space do
106
+ it { expect { subject.jpeg_color_space }.to raise_error(described_class::Error) }
107
+ end
108
+
109
+ describe :read_image do
110
+ it { expect { subject.read_image }.to raise_error(described_class::Error) }
111
+ end
112
+ end #}}}
113
+ end
114
+
115
+ # vim: foldmethod=marker
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe "ImageFile module" do
4
+ it "should exists" do
5
+ expect { ImageFile }.to_not raise_error(NameError)
6
+ end
7
+ end
8
+
9
+ module ImageFile
10
+ describe "Image class" do
11
+ it "should exists" do
12
+ expect { Image }.to_not raise_error(NameError)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ SPEC_DIR = File.expand_path('..', __FILE__)
2
+
3
+ Dir['spec/support/**/*.rb'].map {|f| require_relative f }
4
+
5
+ def in_editor?
6
+ %w[VIM EMACS TM_MODE].any? {|var| ENV.has_key?(var) }
7
+ end
8
+
9
+ RSpec.configure do |c|
10
+ c.color_enabled = !in_editor?
11
+ c.filter_run(focused:true)
12
+ c.run_all_when_everything_filtered = true
13
+ end
14
+
15
+ require 'image_file'
16
+ require 'cairo'
Binary file
Binary file
Binary file
data/tmp/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *
2
+ !.gitignore
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: image-file
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Kenta Murata
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-12-17 00:00:00 +09:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: A library for handling image files
22
+ email: mrkn@mrkn.jp
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - .autotest
31
+ - .document
32
+ - .gitignore
33
+ - .rspec
34
+ - Gemfile
35
+ - History.markdown
36
+ - License.txt
37
+ - README.markdown
38
+ - Rakefile
39
+ - autotest/discover.rb
40
+ - examples/pdf.rb
41
+ - ext/image_file/depend
42
+ - ext/image_file/extconf.rb
43
+ - ext/image_file/image.c
44
+ - ext/image_file/image_file.c
45
+ - ext/image_file/internal.h
46
+ - ext/image_file/jpeg_reader.c
47
+ - image-file.gemspec
48
+ - lib/.gitignore
49
+ - lib/image_file/version.rb
50
+ - pkg/.gitignore
51
+ - spec/image_file/image_spec.rb
52
+ - spec/image_file/jpeg_reader_spec.rb
53
+ - spec/image_file_spec.rb
54
+ - spec/spec_helper.rb
55
+ - spec/support/recompile_cat.jpg
56
+ - spec/support/recompile_cat.png
57
+ - spec/support/recompile_cat_CMYK.jpg
58
+ - tmp/.gitignore
59
+ has_rdoc: true
60
+ homepage: http://github.com/mrkn/image-file
61
+ licenses: []
62
+
63
+ post_install_message:
64
+ rdoc_options:
65
+ - --charset=UTF-8
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 107401639748163987
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ hash: 107401639748163987
83
+ segments:
84
+ - 0
85
+ version: "0"
86
+ requirements: []
87
+
88
+ rubyforge_project:
89
+ rubygems_version: 1.3.7
90
+ signing_key:
91
+ specification_version: 3
92
+ summary: image-file-0.1.0
93
+ test_files:
94
+ - spec/image_file/image_spec.rb
95
+ - spec/image_file/jpeg_reader_spec.rb
96
+ - spec/image_file_spec.rb
97
+ - spec/spec_helper.rb
98
+ - spec/support/recompile_cat.jpg
99
+ - spec/support/recompile_cat.png
100
+ - spec/support/recompile_cat_CMYK.jpg