image_size 1.0.4 → 1.0.5
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/image_size.gemspec +3 -1
- data/lib/image_size.rb +3 -10
- data/spec/image_size_spec.rb +37 -0
- data/{test/bmp.bmp → spec/test.bmp} +0 -0
- data/{test/4_1_2.gif → spec/test.gif} +0 -0
- data/{test/tokyo_tower.jpg → spec/test.jpg} +0 -0
- data/{test/pbm.pbm → spec/test.pbm} +0 -0
- data/{test/pcx.pcx → spec/test.pcx} +0 -0
- data/{test/pgm.pgm → spec/test.pgm} +0 -0
- data/{test/2-4-7.png → spec/test.png} +0 -0
- data/{test/tower_e.psd → spec/test.psd} +0 -0
- data/{test/detect.swf → spec/test.swf} +0 -0
- data/{test/tiff.tiff → spec/test.tif} +0 -0
- data/{test/cursor.xbm → spec/test.xbm} +0 -0
- data/{test → spec}/test.xpm +0 -0
- metadata +46 -35
- data/test/test_helper.rb +0 -2
- data/test/test_image_size.rb +0 -50
data/image_size.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'image_size'
|
5
|
-
s.version = '1.0.
|
5
|
+
s.version = '1.0.5'
|
6
6
|
s.summary = %q{Measure image size using pure Ruby}
|
7
7
|
s.description = %q{Measure following file dimensions: PCX, PSD, XPM, TIFF, XBM, PGM, PBM, PPM, BMP, JPEG, PNG, GIF, SWF}
|
8
8
|
s.homepage = "http://github.com/toy/#{s.name}"
|
@@ -15,4 +15,6 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = %w[lib]
|
18
|
+
|
19
|
+
s.add_development_dependency 'rspec'
|
18
20
|
end
|
data/lib/image_size.rb
CHANGED
@@ -14,9 +14,6 @@ class ImageSize
|
|
14
14
|
# argument is image String, StringIO or IO
|
15
15
|
def initialize(data)
|
16
16
|
@data = data.dup
|
17
|
-
@width = nil
|
18
|
-
@height = nil
|
19
|
-
@format = nil
|
20
17
|
|
21
18
|
if @data.is_a?(IO)
|
22
19
|
img_top = @data.read(1024)
|
@@ -83,8 +80,8 @@ private
|
|
83
80
|
when img_top[0, 4] == "II\x2a\x00" then :tiff
|
84
81
|
when img_top =~ /\/\* XPM \*\// then :xpm
|
85
82
|
when img_top[0, 4] == '8BPS' then :psd
|
86
|
-
when img_top[
|
87
|
-
when img_top[0] ==
|
83
|
+
when img_top =~ /^[FC]WS/ then :swf
|
84
|
+
when img_top[0, 1] == "\x0a" then :pcx
|
88
85
|
end
|
89
86
|
end
|
90
87
|
|
@@ -212,11 +209,7 @@ private
|
|
212
209
|
sig2 = header[1, 1]
|
213
210
|
sig3 = header[2, 1]
|
214
211
|
|
215
|
-
|
216
|
-
raise 'This file is not SWF.'
|
217
|
-
end
|
218
|
-
|
219
|
-
bit_length = Integer("0b#{header.unpack('@8B5')}")
|
212
|
+
bit_length = Integer("0b#{header.unpack('@8B5').first}")
|
220
213
|
header << img_io.read_o(bit_length * 4 / 8 + 1)
|
221
214
|
str = header.unpack("@8B#{5 + bit_length * 4}")[0]
|
222
215
|
last = 5
|
@@ -0,0 +1,37 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
2
|
+
require 'rspec'
|
3
|
+
require 'image_size'
|
4
|
+
|
5
|
+
describe ImageSize do
|
6
|
+
[
|
7
|
+
['test.bmp', :bmp, 50, 50],
|
8
|
+
['test.gif', :gif, 668, 481],
|
9
|
+
['test.jpg', :jpeg, 320, 240],
|
10
|
+
['test.pbm', :pbm, 85, 55],
|
11
|
+
['test.pcx', :pcx, 70, 60],
|
12
|
+
['test.pgm', :pgm, 90, 55],
|
13
|
+
['test.png', :png, 640, 532],
|
14
|
+
['test.psd', :psd, 20, 20],
|
15
|
+
['test.swf', :swf, 450, 200],
|
16
|
+
['test.tif', :tiff, 64, 64],
|
17
|
+
['test.xbm', :xbm, 16, 16],
|
18
|
+
['test.xpm', :xpm, 32, 32],
|
19
|
+
['image_size_spec.rb', nil, nil, nil],
|
20
|
+
].each do |name, format, width, height|
|
21
|
+
path = File.join(File.dirname(__FILE__), name)
|
22
|
+
|
23
|
+
it "should get format and dimensions for #{name} given io" do
|
24
|
+
File.open(path, 'rb') do |fh|
|
25
|
+
is = ImageSize.new(fh)
|
26
|
+
[is.format, is.width, is.height].should == [format, width, height]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should get format and dimensions for #{name} given file data" do
|
31
|
+
File.open(path, 'rb') do |fh|
|
32
|
+
is = ImageSize.new(fh.read)
|
33
|
+
[is.format, is.width, is.height].should == [format, width, height]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/{test → spec}/test.xpm
RENAMED
File without changes
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: image_size
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 5
|
10
|
+
version: 1.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Keisuke Minami
|
@@ -16,9 +16,22 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
20
|
-
dependencies:
|
21
|
-
|
19
|
+
date: 2012-02-04 00:00:00 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
22
35
|
description: "Measure following file dimensions: PCX, PSD, XPM, TIFF, XBM, PGM, PBM, PPM, BMP, JPEG, PNG, GIF, SWF"
|
23
36
|
email:
|
24
37
|
executables: []
|
@@ -32,20 +45,19 @@ files:
|
|
32
45
|
- README.markdown
|
33
46
|
- image_size.gemspec
|
34
47
|
- lib/image_size.rb
|
35
|
-
-
|
36
|
-
- test
|
37
|
-
- test
|
38
|
-
- test
|
39
|
-
- test
|
40
|
-
- test
|
41
|
-
- test
|
42
|
-
- test
|
43
|
-
-
|
44
|
-
- test
|
45
|
-
- test
|
46
|
-
- test
|
47
|
-
- test
|
48
|
-
- test/tower_e.psd
|
48
|
+
- spec/image_size_spec.rb
|
49
|
+
- spec/test.bmp
|
50
|
+
- spec/test.gif
|
51
|
+
- spec/test.jpg
|
52
|
+
- spec/test.pbm
|
53
|
+
- spec/test.pcx
|
54
|
+
- spec/test.pgm
|
55
|
+
- spec/test.png
|
56
|
+
- spec/test.psd
|
57
|
+
- spec/test.swf
|
58
|
+
- spec/test.tif
|
59
|
+
- spec/test.xbm
|
60
|
+
- spec/test.xpm
|
49
61
|
homepage: http://github.com/toy/image_size
|
50
62
|
licenses:
|
51
63
|
- MIT
|
@@ -75,23 +87,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
87
|
requirements: []
|
76
88
|
|
77
89
|
rubyforge_project: image_size
|
78
|
-
rubygems_version: 1.8.
|
90
|
+
rubygems_version: 1.8.15
|
79
91
|
signing_key:
|
80
92
|
specification_version: 3
|
81
93
|
summary: Measure image size using pure Ruby
|
82
94
|
test_files:
|
83
|
-
-
|
84
|
-
- test
|
85
|
-
- test
|
86
|
-
- test
|
87
|
-
- test
|
88
|
-
- test
|
89
|
-
- test
|
90
|
-
- test
|
91
|
-
-
|
92
|
-
- test
|
93
|
-
- test
|
94
|
-
- test
|
95
|
-
- test
|
96
|
-
- test/tower_e.psd
|
95
|
+
- spec/image_size_spec.rb
|
96
|
+
- spec/test.bmp
|
97
|
+
- spec/test.gif
|
98
|
+
- spec/test.jpg
|
99
|
+
- spec/test.pbm
|
100
|
+
- spec/test.pcx
|
101
|
+
- spec/test.pgm
|
102
|
+
- spec/test.png
|
103
|
+
- spec/test.psd
|
104
|
+
- spec/test.swf
|
105
|
+
- spec/test.tif
|
106
|
+
- spec/test.xbm
|
107
|
+
- spec/test.xpm
|
97
108
|
has_rdoc:
|
data/test/test_helper.rb
DELETED
data/test/test_image_size.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
-
|
3
|
-
class TestImageSize < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@dir = File.dirname(__FILE__)
|
7
|
-
@data = [
|
8
|
-
['4_1_2.gif', :gif, 668, 481],
|
9
|
-
['2-4-7.png', :png, 640, 532],
|
10
|
-
['tokyo_tower.jpg', :jpeg, 320, 240],
|
11
|
-
['bmp.bmp', :bmp, 50, 50],
|
12
|
-
['pgm.pgm', :pgm, 90, 55],
|
13
|
-
['pbm.pbm', :pbm, 85, 55],
|
14
|
-
['cursor.xbm', :xbm, 16, 16],
|
15
|
-
['tiff.tiff', :tiff, 64, 64],
|
16
|
-
['test.xpm', :xpm, 32, 32],
|
17
|
-
['tower_e.psd', :psd, 20, 20],
|
18
|
-
['pcx.pcx', :pcx, 70, 60],
|
19
|
-
['detect.swf', :swf, 450, 200],
|
20
|
-
['test_helper.rb', nil, nil, nil],
|
21
|
-
]
|
22
|
-
end
|
23
|
-
|
24
|
-
def teardown
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_string
|
28
|
-
@data.each do |file_name, format, widht, height|
|
29
|
-
open(File.join(@dir, file_name), 'rb') do |fh|
|
30
|
-
img_data = fh.read
|
31
|
-
|
32
|
-
img = ImageSize.new(img_data)
|
33
|
-
assert_equal(format, img.format)
|
34
|
-
assert_equal(widht, img.width)
|
35
|
-
assert_equal(height, img.height)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_io
|
41
|
-
@data.each do |file_name, format, widht, height|
|
42
|
-
open(File.join(@dir, file_name), 'rb') do |fh|
|
43
|
-
img = ImageSize.new(fh)
|
44
|
-
assert_equal(format, img.format)
|
45
|
-
assert_equal(widht, img.width)
|
46
|
-
assert_equal(height, img.height)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|