android_img_resizer 0.9.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/android_img_resizer +18 -14
- data/lib/android_img_resizer/android_img_resizer.rb +98 -61
- data/lib/android_img_resizer/version.rb +1 -1
- metadata +34 -56
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e63ec8ac2797a1b11cf1da5bee4bc85841224655
|
4
|
+
data.tar.gz: 4aebe44e3140ee10156c442d559ae910447dc99c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 76af449ee056eaf6f90a2c2ec28af82855e782c5b1e8c0963abc4710b485a7aa5189062c86323d92d99e86cc96f41c69390023421602b930d41aec668faf58ee
|
7
|
+
data.tar.gz: 3d46d66cad9921e4bb3b38eb3863765f0155a5bfa7a73c954c13018ecd96dd8fbc86250ee673d7756c5d42aa5bd12b07a73b46706e5f30048ef4b304e77f3ff0
|
data/bin/android_img_resizer
CHANGED
@@ -1,39 +1,43 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
2
|
require 'android_img_resizer'
|
3
|
+
|
4
|
+
DPI_SUPPORTED = ["xxxhdpi","xxhdpi","xhdpi","hdpi"]
|
5
|
+
|
4
6
|
puts "----------------------------------------------------------------------"
|
5
7
|
puts "Android Resource Image Resizer "+AndroidImgResizer::VERSION
|
6
8
|
puts "----------------------------------------------------------------------"
|
9
|
+
|
7
10
|
def print_sintax()
|
8
11
|
puts "In the Android Project directory (PATH that has a AndroidManifest.xml) file please type: \n\n"
|
9
|
-
puts "android_img_resizer list
|
10
|
-
puts "android_img_resizer img <image_filename>
|
11
|
-
puts "android_img_resizer all
|
12
|
-
puts "
|
12
|
+
puts "android_img_resizer list <baseline_dpi>: To list Resource Image Files \n\n"
|
13
|
+
puts "android_img_resizer img <image_filename> <baseline_dpi> : To Resize a Resource Image File : \n\n"
|
14
|
+
puts "android_img_resizer all <baseline_dpi> : To Resize all Resource Image files : \n\n"
|
15
|
+
puts "baseline_dpi := [xxxhdpi|xxhdpi|xhdpi|hdpi]\n\n"
|
16
|
+
puts "Note: by default Android Image resizer will use xxhdpi as baseline image file \n\n"
|
13
17
|
end
|
14
18
|
|
15
19
|
if ARGV[0] == "list"
|
16
|
-
if ARGV[1]
|
17
|
-
AndroidImgResizer
|
20
|
+
if DPI_SUPPORTED.include? ARGV[1]
|
21
|
+
AndroidImgResizer.list_images(ARGV[1])
|
18
22
|
else
|
19
|
-
AndroidImgResizer
|
23
|
+
AndroidImgResizer.list_images
|
20
24
|
end
|
21
25
|
|
22
26
|
elsif ARGV[0] == "img"
|
23
27
|
if ARGV[1] != ""
|
24
|
-
if ARGV[2]
|
25
|
-
AndroidImgResizer
|
28
|
+
if DPI_SUPPORTED.include?(ARGV[2])
|
29
|
+
AndroidImgResizer.resize_image(ARGV[1],ARGV[2])
|
26
30
|
else
|
27
|
-
AndroidImgResizer
|
31
|
+
AndroidImgResizer.resize_image(ARGV[1])
|
28
32
|
end
|
29
33
|
else
|
30
34
|
print_sintax()
|
31
35
|
end
|
32
36
|
elsif ARGV[0] == "all"
|
33
|
-
if ARGV[1]
|
34
|
-
AndroidImgResizer
|
37
|
+
if DPI_SUPPORTED.include?(ARGV[1])
|
38
|
+
AndroidImgResizer.resize_all_images(ARGV[1])
|
35
39
|
else
|
36
|
-
AndroidImgResizer
|
40
|
+
AndroidImgResizer.resize_all_images
|
37
41
|
end
|
38
42
|
else
|
39
43
|
print_sintax()
|
@@ -2,103 +2,140 @@ require 'rubygems'
|
|
2
2
|
require 'RMagick'
|
3
3
|
|
4
4
|
module AndroidImgResizer
|
5
|
-
|
6
|
-
class AndroidImgResizer
|
7
5
|
|
8
|
-
def
|
6
|
+
def self.verify_android_project
|
9
7
|
files=["AndroidManifest.xml"]
|
10
|
-
directories=["res","res/drawable-hdpi","res/drawable-
|
8
|
+
directories=["res","res/drawable-hdpi","res/drawable-xhdpi","res/drawable-mdpi","src"]
|
11
9
|
|
12
10
|
files.each do |file|
|
13
11
|
if !File::exists?(file)
|
14
|
-
puts "Error: This is not a Android project Directory"
|
15
|
-
puts "Error: File not exists"
|
12
|
+
puts "Error: This is not a Android project Directory\n"
|
13
|
+
puts "Error: File not exists #{file} \n"
|
16
14
|
return false
|
17
15
|
end
|
18
16
|
end
|
19
17
|
|
20
18
|
directories.each do |directory|
|
21
19
|
if !File::directory?(directory)
|
22
|
-
puts "Error: This is not a Android project Directory"
|
23
|
-
puts "Error: Directory not exists"
|
20
|
+
puts "Error: This is not a Android project Directory\n"
|
21
|
+
puts "Error: Directory not exists #{directory} \n"
|
24
22
|
return false
|
25
23
|
end
|
26
|
-
|
27
24
|
end
|
28
25
|
return true
|
29
26
|
end
|
30
27
|
|
31
|
-
def
|
28
|
+
def self.list_images(base_dpi="xxhdpi")
|
32
29
|
return if !self.verify_android_project
|
33
|
-
Dir::chdir("res/drawable-"+
|
30
|
+
Dir::chdir("res/drawable-"+base_dpi+"/")
|
34
31
|
files=Dir["*.{png,jpg,gif,bitmap}"]
|
35
32
|
files.each do |entry|
|
36
33
|
puts "Drawable File = #{entry}"
|
37
34
|
end
|
38
35
|
end
|
39
36
|
|
40
|
-
def
|
37
|
+
def self.resize_all_images(base_dpi="xxhdpi")
|
41
38
|
return if !self.verify_android_project
|
42
|
-
|
39
|
+
|
40
|
+
baseline_path = "res/drawable-"+base_dpi+"/"
|
41
|
+
if !File::exists?(baseline_path)
|
42
|
+
puts "Baseline path #{baseline_path} doesnt exist"
|
43
|
+
exit(1)
|
44
|
+
end
|
45
|
+
|
46
|
+
Dir::chdir(baseline_path)
|
43
47
|
files=Dir["*.{png,jpg,gif,bitmap}"]
|
44
48
|
Dir::chdir("../../")
|
45
49
|
files.each do |entry|
|
46
|
-
resize_image(entry,
|
50
|
+
resize_image(entry,base_dpi)
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
50
|
-
def
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
# 150% Resizing
|
58
|
-
xsize=(img.columns*1.5)/2
|
59
|
-
ysize=(img.rows*1.5)/2
|
60
|
-
puts "Image = #{image} hdpi = #{xsize.to_i}x#{ysize.to_i}"
|
61
|
-
hdpi = img.scale(xsize.to_i,ysize.to_i)
|
62
|
-
hdpi.write "res/drawable-hdpi/"+image
|
63
|
-
# 100% Resizing
|
64
|
-
xsize=(img.columns)/2
|
65
|
-
ysize=(img.rows)/2
|
66
|
-
puts "Image = #{image} mdpi = #{xsize.to_i}x#{ysize.to_i}"
|
67
|
-
mdpi = img.scale(xsize.to_i,ysize.to_i)
|
68
|
-
mdpi.write "res/drawable-mdpi/"+image
|
54
|
+
def self.scale(imageFile,rimg,factor,tag)
|
55
|
+
xsize=rimg.columns*factor
|
56
|
+
ysize=rimg.rows*factor
|
57
|
+
puts "Image = #{imageFile} #{tag} = #{xsize.to_i}x#{ysize.to_i}"
|
58
|
+
hdpi = rimg.scale(xsize.to_i,ysize.to_i)
|
59
|
+
hdpi.write "res/drawable-#{tag}/"+imageFile
|
60
|
+
end
|
69
61
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
# Base Image file is in xdpi directory
|
80
|
-
#150% -> 100%
|
81
|
-
xsize=(img.columns)/1.5
|
82
|
-
ysize=(img.rows)/1.5
|
83
|
-
puts "Image = #{image} mdpi = #{xsize.to_i}x#{ysize.to_i}"
|
84
|
-
mdpi = img.scale(xsize.to_i,ysize.to_i)
|
85
|
-
mdpi.write "res/drawable-mdpi/"+image
|
62
|
+
def self.resize_image(imageFile,base_dpi="xxhdpi")
|
63
|
+
return if !self.verify_android_project
|
64
|
+
|
65
|
+
full_path = "res/drawable-#{base_dpi}/#{imageFile}"
|
66
|
+
|
67
|
+
if !File::exists?(full_path)
|
68
|
+
puts "Image #{full_path} doesnt exist"
|
69
|
+
exit(1)
|
70
|
+
end
|
86
71
|
|
87
|
-
|
88
|
-
|
89
|
-
ysize=(img.rows)/2
|
90
|
-
puts "Image = #{image} ldpi = #{xsize.to_i}x#{ysize.to_i}"
|
91
|
-
dpi = img.scale(xsize.to_i,ysize.to_i)
|
92
|
-
dpi.write "res/drawable-ldpi/"+image
|
93
|
-
end
|
72
|
+
rimg = Magick::Image.read(full_path).first
|
73
|
+
puts "Resizing Image = #{imageFile} with size = #{rimg.columns}x#{rimg.rows} from #{base_dpi}"
|
94
74
|
|
75
|
+
# Scale Down images in res/drawable-xxxhdpi to the lower dpis
|
76
|
+
if base_dpi == 'xxxhdpi'
|
77
|
+
self.scale_xxxhdpi(imageFile,rimg)
|
78
|
+
# Scale Down images in res/drawable-xxhdpi to the lower dpis
|
79
|
+
elsif base_dpi == 'xxhdpi'
|
80
|
+
self.scale_xxhdpi(imageFile,rimg)
|
81
|
+
# Scale Down images in res/drawable-xhdpi to the lower dpis
|
82
|
+
elsif base_dpi == 'xhdpi'
|
83
|
+
self.scale_xhdpi(imageFile,rimg)
|
84
|
+
# Scale Down images in res/drawable-hdpi to the lower dpis
|
85
|
+
else
|
86
|
+
self.scale_hdpi(imageFile,rimg)
|
87
|
+
end
|
95
88
|
|
96
89
|
end
|
97
90
|
|
98
|
-
def
|
99
|
-
|
100
|
-
|
101
|
-
|
91
|
+
def self.scale_xxxhdpi(imageFile,rimg)
|
92
|
+
# xxdpi version 3/4 - 3.0x mdpi
|
93
|
+
self.scale(imageFile,rimg,0.75,"xxhdpi")
|
94
|
+
# xxdpi version 2/4 - 2.0x mdpi
|
95
|
+
self.scale(imageFile,rimg,0.5,"xhdpi")
|
96
|
+
# xxdpi version 1.5/4 - 1.5x mdpi
|
97
|
+
self.scale(imageFile,rimg,0.375,"hdpi")
|
98
|
+
# xxdpi version 1/4 - 1.0x mdpi
|
99
|
+
self.scale(imageFile,rimg,0.25,"mdpi")
|
102
100
|
end
|
103
|
-
|
101
|
+
|
102
|
+
def self.scale_xxhdpi(imageFile,rimg)
|
103
|
+
# xdpi version 2/3 - 2.0x mdpi
|
104
|
+
self.scale(imageFile,rimg,2.0/3,"xhdpi")
|
105
|
+
# hdpi version 0.5 - 1.5x mdpi
|
106
|
+
self.scale(imageFile,rimg,0.5,"hdpi")
|
107
|
+
# hdpi version 1/3 - 1.0x mdpi
|
108
|
+
self.scale(imageFile,rimg,1.0/3,"mdpi")
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.scale_xhdpi(imageFile,rimg)
|
112
|
+
# xdpi version 0.75 - 1.5x mdpi
|
113
|
+
self.scale(imageFile,rimg,0.75,"hdpi")
|
114
|
+
# xdpi version 0.5 - 1.0x mdpi
|
115
|
+
self.scale(imageFile,rimg,0.5,"mdpi")
|
116
|
+
end
|
117
|
+
|
118
|
+
def self.scale_hdpi(imageFile,rimg)
|
119
|
+
# xdpi version 2/3 - 1.5x mdpi
|
120
|
+
self.scale(imageFile,rimg,2.0/3,"mdpi")
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.clean_files(imgtoclean)
|
124
|
+
if File::exists?("res/drawable-xxhdpi/"+imgtoclean)
|
125
|
+
File.delete("res/drawable-xxhdpi/"+imgtoclean)
|
126
|
+
end
|
127
|
+
if File::exists?("res/drawable-xhdpi/"+imgtoclean)
|
128
|
+
File.delete("res/drawable-xhdpi/"+imgtoclean)
|
129
|
+
end
|
130
|
+
if File::exists?("res/drawable-hdpi/"+imgtoclean)
|
131
|
+
File.delete("res/drawable-hdpi/"+imgtoclean)
|
132
|
+
end
|
133
|
+
if File::exists?("res/drawable-mdpi/"+imgtoclean)
|
134
|
+
File.delete("res/drawable-mdpi/"+imgtoclean)
|
135
|
+
end
|
136
|
+
if File::exists?("res/drawable-ldpi/"+imgtoclean)
|
137
|
+
File.delete("res/drawable-ldpi/"+imgtoclean)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
104
141
|
end
|
metadata
CHANGED
@@ -1,84 +1,62 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: android_img_resizer
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 1
|
10
|
-
version: 0.9.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
6
|
+
authors:
|
7
|
+
- Hélder Vasconcels
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-01-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: rmagick
|
22
|
-
|
23
|
-
|
24
|
-
none: false
|
25
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
26
17
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 57
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 13
|
32
|
-
- 1
|
18
|
+
- !ruby/object:Gem::Version
|
33
19
|
version: 2.13.1
|
34
20
|
type: :runtime
|
35
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.13.1
|
36
27
|
description: Tool to resize Android Resource images
|
37
|
-
email:
|
28
|
+
email:
|
38
29
|
- heldervasc@bearstouch.com
|
39
|
-
executables:
|
30
|
+
executables:
|
40
31
|
- android_img_resizer
|
41
32
|
extensions: []
|
42
|
-
|
43
33
|
extra_rdoc_files: []
|
44
|
-
|
45
|
-
files:
|
34
|
+
files:
|
46
35
|
- lib/android_img_resizer.rb
|
47
36
|
- lib/android_img_resizer/version.rb
|
48
37
|
- lib/android_img_resizer/android_img_resizer.rb
|
49
38
|
- bin/android_img_resizer
|
50
39
|
homepage: http://www.bearstouch.com
|
51
40
|
licenses: []
|
52
|
-
|
41
|
+
metadata: {}
|
53
42
|
post_install_message:
|
54
43
|
rdoc_options: []
|
55
|
-
|
56
|
-
require_paths:
|
44
|
+
require_paths:
|
57
45
|
- lib
|
58
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
none: false
|
69
|
-
requirements:
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
hash: 3
|
73
|
-
segments:
|
74
|
-
- 0
|
75
|
-
version: "0"
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - '>='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
76
56
|
requirements: []
|
77
|
-
|
78
57
|
rubyforge_project: android_img_resizer
|
79
|
-
rubygems_version:
|
58
|
+
rubygems_version: 2.0.3
|
80
59
|
signing_key:
|
81
|
-
specification_version:
|
60
|
+
specification_version: 4
|
82
61
|
summary: Tool to resize Android Resource images
|
83
62
|
test_files: []
|
84
|
-
|