android_img_resizer 0.9.1 → 1.0.0

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.
@@ -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
-