pix_scale 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.md +9 -0
- data/README.md +21 -2
- data/lib/pix_scale/command.rb +9 -3
- data/lib/pix_scale/pic.rb +14 -7
- data/lib/pix_scale/version.rb +1 -1
- data/pix_scale.gemspec +4 -0
- data/test/test-pic.rb +16 -9
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d8614598635a11e8ac05abf5923664b1cc70d69
|
4
|
+
data.tar.gz: d318080c15e69599c81a3f0f299f28428e0a6018
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fb5f7f8d3ca4cc4efbf31ca2ba51fa66fea4055ff23a98e1559b67cc8ff6de58407772259a0ef667a20fcbd89f8afe856b0785ae9fd2e102ed8d75aeda91539
|
7
|
+
data.tar.gz: 237b17b8fecb6f61f66a457e00884140fe5ad5e5c4b19a6ea7515d58c6600fe6bfcdbec5bee36cdbe68cd9e6ca2c20800f8c8f71f2a4c3a4b6cb9955d8bc228d
|
data/NEWS.md
CHANGED
data/README.md
CHANGED
@@ -29,17 +29,25 @@ A command line tool for scale of pix.
|
|
29
29
|
-rw-rw-r-- 1 you you 46643 2013-06-27 20:00 foo.png
|
30
30
|
-rw-rw-r-- 1 you you 18539 2013-06-27 20:01 foo-0.5.png
|
31
31
|
|
32
|
-
### width
|
32
|
+
### width/height
|
33
33
|
|
34
34
|
% ls -l
|
35
35
|
-rw-rw-r-- 1 you you 46643 2013-06-27 20:00 foo.png
|
36
36
|
|
37
|
-
% pix_scale foo.png
|
37
|
+
% pix_scale foo.png 200_200 # width_height
|
38
38
|
|
39
39
|
% ls -l
|
40
40
|
-rw-rw-r-- 1 you you 46643 2013-06-27 20:00 foo.png
|
41
41
|
-rw-rw-r-- 1 you you 18539 2013-06-27 20:01 foo-200_200.png
|
42
42
|
|
43
|
+
#### width only (Height maintains a ratio.)
|
44
|
+
|
45
|
+
% pix_scale foo.png 200
|
46
|
+
|
47
|
+
#### height only (Width maintains a ratio.)
|
48
|
+
|
49
|
+
% pix_scale foo.png _200
|
50
|
+
|
43
51
|
### multiple files
|
44
52
|
|
45
53
|
% ls -l
|
@@ -54,6 +62,17 @@ A command line tool for scale of pix.
|
|
54
62
|
-rw-rw-r-- 1 you you 31438 2013-06-27 20:00 bar.png
|
55
63
|
-rw-rw-r-- 1 you you 16462 2013-06-27 20:01 bar-0.5.png
|
56
64
|
|
65
|
+
### specify type
|
66
|
+
|
67
|
+
% ls -l
|
68
|
+
-rw-rw-r-- 1 you you 46643 2013-06-27 20:00 foo
|
69
|
+
|
70
|
+
% pix_scale -t png foo 0.5
|
71
|
+
|
72
|
+
% ls -l
|
73
|
+
-rw-rw-r-- 1 you you 46643 2013-06-27 20:00 foo
|
74
|
+
-rw-rw-r-- 1 you you 18539 2013-06-27 20:01 foo-0.5.png
|
75
|
+
|
57
76
|
## Contributing
|
58
77
|
|
59
78
|
1. Fork it
|
data/lib/pix_scale/command.rb
CHANGED
@@ -6,19 +6,25 @@ module PixScale
|
|
6
6
|
def self.run(*arguments)
|
7
7
|
if /\A(-h|--help)\z/ =~ arguments[0]
|
8
8
|
puts <<-EOM
|
9
|
-
Usage:
|
10
|
-
|
9
|
+
Usage: pix_scale [-t TYPE] FILE... SCALE|WIDTH_HEIGHT
|
10
|
+
Example1: pix_scale foo.png 0.5
|
11
|
+
Example2: pix_scale foo.png 240_180
|
12
|
+
Example3: pix_scale -t png foo 0.5
|
11
13
|
EOM
|
12
14
|
exit(true)
|
13
15
|
elsif /\A(-v|--version)\z/ =~ arguments[0]
|
14
16
|
puts PixScale::VERSION
|
15
17
|
exit(true)
|
18
|
+
elsif /\A(-t|--type)\z/ =~ arguments[0]
|
19
|
+
# FIXME: Use OptionParser
|
20
|
+
type = arguments[1]
|
21
|
+
arguments.shift(2)
|
16
22
|
end
|
17
23
|
|
18
24
|
scale = arguments.pop
|
19
25
|
|
20
26
|
arguments.each do |pic_path|
|
21
|
-
Pic.scale_and_save(pic_path, scale)
|
27
|
+
Pic.scale_and_save(pic_path, scale, type)
|
22
28
|
end
|
23
29
|
end
|
24
30
|
end
|
data/lib/pix_scale/pic.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
+
# TODO: Remove me. It is workaround untill Ruby/GdkPixbuf2 2.0.3 is released.
|
2
|
+
# This is required in order to work on Windows.
|
3
|
+
require "cairo"
|
4
|
+
|
1
5
|
require "gdk_pixbuf2"
|
2
6
|
|
3
7
|
module PixScale
|
4
8
|
class Pic
|
5
|
-
def self.scale_and_save(path, scale)
|
6
|
-
new(path).scale_and_save(scale)
|
9
|
+
def self.scale_and_save(path, scale, type=nil)
|
10
|
+
new(path).scale_and_save(scale, type)
|
7
11
|
end
|
8
12
|
|
9
13
|
attr_reader :path, :type
|
@@ -13,10 +17,12 @@ module PixScale
|
|
13
17
|
@type = (/\A\.jpg\z/i =~ extname) ? "jpeg" : extname.sub(/^\./, "").downcase
|
14
18
|
end
|
15
19
|
|
16
|
-
def scale_and_save(scale)
|
20
|
+
def scale_and_save(scale, type=nil)
|
17
21
|
scale_string = scale.to_s.sub(/[^\.0-9]/, "_")
|
18
|
-
|
19
|
-
|
22
|
+
extention = type || extname
|
23
|
+
extention = ".#{extention}" unless /\A\./ =~ extention
|
24
|
+
output_path = "#{dirname}/#{basename}-#{scale_string}#{extention}"
|
25
|
+
scale(scale).save(output_path, type)
|
20
26
|
end
|
21
27
|
|
22
28
|
def scale(scale)
|
@@ -48,8 +54,9 @@ module PixScale
|
|
48
54
|
@pic = @pic.scale(width, height)
|
49
55
|
end
|
50
56
|
|
51
|
-
def save(output_path)
|
52
|
-
|
57
|
+
def save(output_path, type=nil)
|
58
|
+
output_type = type || @type
|
59
|
+
@pic.save(output_path, output_type)
|
53
60
|
end
|
54
61
|
|
55
62
|
private
|
data/lib/pix_scale/version.rb
CHANGED
data/pix_scale.gemspec
CHANGED
@@ -20,6 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_runtime_dependency("gdk_pixbuf2")
|
22
22
|
|
23
|
+
# TODO: Remove me. It is workaround untill Ruby/GdkPixbuf2 2.0.3 is released.
|
24
|
+
# This is required in order to work on Windows.
|
25
|
+
spec.add_runtime_dependency("cairo")
|
26
|
+
|
23
27
|
spec.add_development_dependency("test-unit")
|
24
28
|
spec.add_development_dependency("test-unit-notify")
|
25
29
|
spec.add_development_dependency("test-unit-rr")
|
data/test/test-pic.rb
CHANGED
@@ -13,60 +13,67 @@ class PicTest < Test::Unit::TestCase
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class ScaleAndSaveTest < self
|
16
|
-
def
|
16
|
+
def test_rate
|
17
17
|
path = "test/fixtures/nijip.png"
|
18
18
|
scale = 0.5
|
19
19
|
scaled_path = "test/fixtures/nijip-0.5.png"
|
20
20
|
assert_scale_and_save(path, scale, scaled_path)
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
23
|
+
def test_width_and_height
|
24
24
|
path = "test/fixtures/nijip.png"
|
25
25
|
scale = "240,180"
|
26
26
|
scaled_path = "test/fixtures/nijip-240_180.png"
|
27
27
|
assert_scale_and_save(path, scale, scaled_path)
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
30
|
+
def test_upcase_PNG
|
31
31
|
path = "test/fixtures/nyanko.PNG"
|
32
32
|
scale = 0.66
|
33
33
|
scaled_path = "test/fixtures/nyanko-0.66.PNG"
|
34
34
|
assert_scale_and_save(path, scale, scaled_path)
|
35
35
|
end
|
36
36
|
|
37
|
-
def
|
37
|
+
def test_jpg
|
38
38
|
path = "test/fixtures/teabreak.jpg"
|
39
39
|
scale = 0.09
|
40
40
|
scaled_path = "test/fixtures/teabreak-0.09.jpg"
|
41
41
|
assert_scale_and_save(path, scale, scaled_path)
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
44
|
+
def test_jpeg
|
45
45
|
path = "test/fixtures/teabreak.jpeg"
|
46
46
|
scale = 0.09
|
47
47
|
scaled_path = "test/fixtures/teabreak-0.09.jpeg"
|
48
48
|
assert_scale_and_save(path, scale, scaled_path)
|
49
49
|
end
|
50
50
|
|
51
|
-
def
|
51
|
+
def test_upcase_JPG
|
52
52
|
path = "test/fixtures/teabreak.JPG"
|
53
53
|
scale = 0.09
|
54
54
|
scaled_path = "test/fixtures/teabreak-0.09.JPG"
|
55
55
|
assert_scale_and_save(path, scale, scaled_path)
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
58
|
+
def test_upcase_JPEG
|
59
59
|
path = "test/fixtures/teabreak.JPEG"
|
60
60
|
scale = 0.09
|
61
61
|
scaled_path = "test/fixtures/teabreak-0.09.JPEG"
|
62
62
|
assert_scale_and_save(path, scale, scaled_path)
|
63
63
|
end
|
64
64
|
|
65
|
+
def test_type_option
|
66
|
+
path = "test/fixtures/teabreak.JPEG"
|
67
|
+
scale = 0.09
|
68
|
+
scaled_path = "test/fixtures/teabreak-0.09.png"
|
69
|
+
assert_scale_and_save(path, scale, scaled_path, "png")
|
70
|
+
end
|
71
|
+
|
65
72
|
private
|
66
|
-
def assert_scale_and_save(path, scale, scaled_path)
|
73
|
+
def assert_scale_and_save(path, scale, scaled_path, type=nil)
|
67
74
|
File.delete(scaled_path) if File.exist?(scaled_path)
|
68
75
|
pic = PixScale::Pic.new(path)
|
69
|
-
pic.scale_and_save(scale)
|
76
|
+
pic.scale_and_save(scale, type)
|
70
77
|
assert_true(File.file?(scaled_path))
|
71
78
|
assert_true(File.size(path) > File.size(scaled_path))
|
72
79
|
assert_true(File.size(scaled_path) > 0)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pix_scale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gdk_pixbuf2
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cairo
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: test-unit
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|