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.
@@ -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
@@ -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 [xhdpi|hdpi] : To list Resource Image Files \n\n"
10
- puts "android_img_resizer img <image_filename> [xhdpi|hdpi] : To Resize a Resource Image File : \n\n"
11
- puts "android_img_resizer all [xhdpi|hdpi] : To Resize all Resource Image files : \n\n"
12
- puts "Note: by default Android Image resizer will use xhdpi as base image file \n\n"
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]=='hdpi'
17
- AndroidImgResizer::AndroidImgResizer.list_images(ARGV[1])
20
+ if DPI_SUPPORTED.include? ARGV[1]
21
+ AndroidImgResizer.list_images(ARGV[1])
18
22
  else
19
- AndroidImgResizer::AndroidImgResizer.list_images
23
+ AndroidImgResizer.list_images
20
24
  end
21
25
 
22
26
  elsif ARGV[0] == "img"
23
27
  if ARGV[1] != ""
24
- if ARGV[2] == "hdpi"
25
- AndroidImgResizer::AndroidImgResizer.resize_image(ARGV[1],ARGV[2])
28
+ if DPI_SUPPORTED.include?(ARGV[2])
29
+ AndroidImgResizer.resize_image(ARGV[1],ARGV[2])
26
30
  else
27
- AndroidImgResizer::AndroidImgResizer.resize_image(ARGV[1])
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] == "hdpi"
34
- AndroidImgResizer::AndroidImgResizer.resize_all_images(ARGV[1])
37
+ if DPI_SUPPORTED.include?(ARGV[1])
38
+ AndroidImgResizer.resize_all_images(ARGV[1])
35
39
  else
36
- AndroidImgResizer::AndroidImgResizer.resize_all_images
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 AndroidImgResizer.verify_android_project
6
+ def self.verify_android_project
9
7
  files=["AndroidManifest.xml"]
10
- directories=["res","res/drawable-hdpi","res/drawable-mdpi","res/drawable-ldpi","src"]
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"+file
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"+directory
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 AndroidImgResizer.list_images(from="xhdpi")
28
+ def self.list_images(base_dpi="xxhdpi")
32
29
  return if !self.verify_android_project
33
- Dir::chdir("res/drawable-"+from+"/")
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 AndroidImgResizer.resize_all_images(from="xhdpi")
37
+ def self.resize_all_images(base_dpi="xxhdpi")
41
38
  return if !self.verify_android_project
42
- Dir::chdir("res/drawable-"+from+"/")
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,from)
50
+ resize_image(entry,base_dpi)
47
51
  end
48
52
  end
49
53
 
50
- def AndroidImgResizer.resize_image(image,from="xhdpi")
51
- return if !self.verify_android_project
52
- #clean_files image
53
- if from == 'xhdpi'
54
- # Base Image file is in xdpi directory
55
- img = Magick::Image.read("res/drawable-xhdpi/"+image).first
56
- puts "Resizing Image = #{image} with size = #{img.columns}x#{img.rows}"
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
- # 75% Resizing
71
- xsize=(img.columns*0.75)/2
72
- ysize=(img.rows*0.75)/2
73
- puts "Image = #{image} ldpi = #{xsize.to_i}x#{ysize.to_i}"
74
- dpi = img.scale(xsize.to_i,ysize.to_i)
75
- dpi.write "res/drawable-ldpi/"+image
76
- else
77
- img = Magick::Image.read("res/drawable-hdpi/"+image).first
78
- puts "Resizing Image = #{image} with size = #{img.columns}x#{img.rows}"
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
- #150% -> 75%
88
- xsize=(img.columns)/2
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 AndroidImgResizer.clean_files(imgtoclean)
99
- File.delete("res/drawable-hdpi/"+imgtoclean) if File::exists?("res/drawable-hdpi/"+imgtoclean)
100
- File.delete("res/drawable-mdpi/"+imgtoclean) if File::exists?("res/drawable-mdpi/"+imgtoclean)
101
- File.delete("res/drawable-ldpi/"+imgtoclean) if File::exists?("res/drawable-ldpi/"+imgtoclean)
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
- end
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
@@ -1,3 +1,3 @@
1
1
  module AndroidImgResizer
2
- VERSION = "0.9.1"
2
+ VERSION = "1.0.0"
3
3
  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
- hash: 57
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
- - "H\xC3\xA9lder Vasconcels"
6
+ authors:
7
+ - Hélder Vasconcels
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-02-01 00:00:00 Z
19
- dependencies:
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
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: *id001
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
- none: false
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- hash: 3
64
- segments:
65
- - 0
66
- version: "0"
67
- required_rubygems_version: !ruby/object:Gem::Requirement
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: 1.8.11
58
+ rubygems_version: 2.0.3
80
59
  signing_key:
81
- specification_version: 3
60
+ specification_version: 4
82
61
  summary: Tool to resize Android Resource images
83
62
  test_files: []
84
-