Ridimensionare immagini in Ruby
Per ridimensionare le immagini in Ruby, ho usato il modulo rmagick!
Si tratta di una interfaccia tra ImageMagick.
Quindi do per scontato che sia installato sul vostro sistema.
Detto ciò, prima di tutto dobbiamo installare il modulo:
$ gem install rmagick
A questo punto vediamo un pò di codice:
require 'rmagick'
require 'pathname'
@directory = Pathname(File.expand_path("DIRECTORY_CON_IMMAGINI"))
@resizedDir = "#{@directory}/resized"
@size = 500
def resizeImage(file)
img = Magick::Image.read(file).first
resized = img.resize_to_fit(@size)
path = @directory.join(@resizedDir, File.basename(file))
resized.write(path) do
self.quality = 100
end
img.destroy!
resized.destroy!
end
unless File.directory? @resizedDir
puts "Cartella di destinazione creata: #{@resizedDir}/"
Dir.mkdir @resizedDir
end
files = Dir.glob "#{@directory}/*.{jpg, png, jpeg}"
puts "Elaborando #{files.size} immagini!"
files.each do |file|
puts "Numero di immagini da elaborare: #{file}"
resizeImage(file)
end
puts "Elaborazione terminata!"
Abbiamo una cartella dove ci sono le nostre immagini (che potete anche passare come argomento se volete); poi abbiamo la dimensione di resizing, e la cartella dove verranno copiate le immagini ridimensionate (in questo modo manteniamo le originali).
Iteriamo su tutti files che hanno le estensioni indicate (quindi immagini), e per ognuno richiamiamo il metodo resizeImage.
Qui dentro facciamo il resizing con la dimensione indicata, mantenendo la proporzione.
Poi stampiamo un pò di info.
Enjoy!
ruby rmagick imagemaigck pathname
Commentami!