Module: AndroidImgResizer
- Defined in:
- lib/android_img_resizer/version.rb,
lib/android_img_resizer/android_img_resizer.rb
Constant Summary collapse
- VERSION =
"1.0.0"
Class Method Summary collapse
- .clean_files(imgtoclean) ⇒ Object
- .list_images(base_dpi = "xxhdpi") ⇒ Object
- .resize_all_images(base_dpi = "xxhdpi") ⇒ Object
- .resize_image(imageFile, base_dpi = "xxhdpi") ⇒ Object
- .scale(imageFile, rimg, factor, tag) ⇒ Object
- .scale_hdpi(imageFile, rimg) ⇒ Object
- .scale_xhdpi(imageFile, rimg) ⇒ Object
- .scale_xxhdpi(imageFile, rimg) ⇒ Object
- .scale_xxxhdpi(imageFile, rimg) ⇒ Object
- .verify_android_project ⇒ Object
Class Method Details
.clean_files(imgtoclean) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 123 def self.clean_files(imgtoclean) if File::exists?("res/drawable-xxhdpi/"+imgtoclean) File.delete("res/drawable-xxhdpi/"+imgtoclean) end if File::exists?("res/drawable-xhdpi/"+imgtoclean) File.delete("res/drawable-xhdpi/"+imgtoclean) end if File::exists?("res/drawable-hdpi/"+imgtoclean) File.delete("res/drawable-hdpi/"+imgtoclean) end if File::exists?("res/drawable-mdpi/"+imgtoclean) File.delete("res/drawable-mdpi/"+imgtoclean) end if File::exists?("res/drawable-ldpi/"+imgtoclean) File.delete("res/drawable-ldpi/"+imgtoclean) end end |
.list_images(base_dpi = "xxhdpi") ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 28 def self.list_images(base_dpi="xxhdpi") return if !self.verify_android_project Dir::chdir("res/drawable-"+base_dpi+"/") files=Dir["*.{png,jpg,gif,bitmap}"] files.each do |entry| puts "Drawable File = #{entry}" end end |
.resize_all_images(base_dpi = "xxhdpi") ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 37 def self.resize_all_images(base_dpi="xxhdpi") return if !self.verify_android_project baseline_path = "res/drawable-"+base_dpi+"/" if !File::exists?(baseline_path) puts "Baseline path #{baseline_path} doesnt exist" exit(1) end Dir::chdir(baseline_path) files=Dir["*.{png,jpg,gif,bitmap}"] Dir::chdir("../../") files.each do |entry| resize_image(entry,base_dpi) end end |
.resize_image(imageFile, base_dpi = "xxhdpi") ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 62 def self.resize_image(imageFile,base_dpi="xxhdpi") return if !self.verify_android_project full_path = "res/drawable-#{base_dpi}/#{imageFile}" if !File::exists?(full_path) puts "Image #{full_path} doesnt exist" exit(1) end rimg = Magick::Image.read(full_path).first puts "Resizing Image = #{imageFile} with size = #{rimg.columns}x#{rimg.rows} from #{base_dpi}" # Scale Down images in res/drawable-xxxhdpi to the lower dpis if base_dpi == 'xxxhdpi' self.scale_xxxhdpi(imageFile,rimg) # Scale Down images in res/drawable-xxhdpi to the lower dpis elsif base_dpi == 'xxhdpi' self.scale_xxhdpi(imageFile,rimg) # Scale Down images in res/drawable-xhdpi to the lower dpis elsif base_dpi == 'xhdpi' self.scale_xhdpi(imageFile,rimg) # Scale Down images in res/drawable-hdpi to the lower dpis else self.scale_hdpi(imageFile,rimg) end end |
.scale(imageFile, rimg, factor, tag) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 54 def self.scale(imageFile,rimg,factor,tag) xsize=rimg.columns*factor ysize=rimg.rows*factor puts "Image = #{imageFile} #{tag} = #{xsize.to_i}x#{ysize.to_i}" hdpi = rimg.scale(xsize.to_i,ysize.to_i) hdpi.write "res/drawable-#{tag}/"+imageFile end |
.scale_hdpi(imageFile, rimg) ⇒ Object
118 119 120 121 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 118 def self.scale_hdpi(imageFile,rimg) # xdpi version 2/3 - 1.5x mdpi self.scale(imageFile,rimg,2.0/3,"mdpi") end |
.scale_xhdpi(imageFile, rimg) ⇒ Object
111 112 113 114 115 116 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 111 def self.scale_xhdpi(imageFile,rimg) # xdpi version 0.75 - 1.5x mdpi self.scale(imageFile,rimg,0.75,"hdpi") # xdpi version 0.5 - 1.0x mdpi self.scale(imageFile,rimg,0.5,"mdpi") end |
.scale_xxhdpi(imageFile, rimg) ⇒ Object
102 103 104 105 106 107 108 109 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 102 def self.scale_xxhdpi(imageFile,rimg) # xdpi version 2/3 - 2.0x mdpi self.scale(imageFile,rimg,2.0/3,"xhdpi") # hdpi version 0.5 - 1.5x mdpi self.scale(imageFile,rimg,0.5,"hdpi") # hdpi version 1/3 - 1.0x mdpi self.scale(imageFile,rimg,1.0/3,"mdpi") end |
.scale_xxxhdpi(imageFile, rimg) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 91 def self.scale_xxxhdpi(imageFile,rimg) # xxdpi version 3/4 - 3.0x mdpi self.scale(imageFile,rimg,0.75,"xxhdpi") # xxdpi version 2/4 - 2.0x mdpi self.scale(imageFile,rimg,0.5,"xhdpi") # xxdpi version 1.5/4 - 1.5x mdpi self.scale(imageFile,rimg,0.375,"hdpi") # xxdpi version 1/4 - 1.0x mdpi self.scale(imageFile,rimg,0.25,"mdpi") end |
.verify_android_project ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/android_img_resizer/android_img_resizer.rb', line 6 def self.verify_android_project files=["AndroidManifest.xml"] directories=["res","res/drawable-hdpi","res/drawable-xhdpi","res/drawable-mdpi","src"] files.each do |file| if !File::exists?(file) puts "Error: This is not a Android project Directory\n" puts "Error: File not exists #{file} \n" return false end end directories.each do |directory| if !File::directory?(directory) puts "Error: This is not a Android project Directory\n" puts "Error: Directory not exists #{directory} \n" return false end end return true end |