Ridimensionare immagini in Ruby

Mattepuffo's logo
Ridimensionare immagini in Ruby

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!


Condividi

Commentami!