#!/usr/bin/ruby require "RMagick" # ensure dirs are available for writing ["thumbs","full","processed"].each do |dir| if !File.directory? dir Dir.mkdir dir end end # Loop through items in the dir files = Dir.entries "." fileCounter = 1 totalFiles = files.length-2 files.each do |f| if File.directory? f puts "Skipping directory: #{f}" next end if [".", "..", ".DS_Store"].index(f) == nil puts "Resizing file: #{f} - #{fileCounter} of #{totalFiles}" img = Magick::Image.read(f).first thumb = img.resize_to_fit(100, 100) full = img.resize_to_fit(580, 580) thumb.write("thumbs/#{f}") {self.quality = 60} full.write("full/#{f}") {self.quality = 75} fileCounter += 1 # move the file to processed folder system("mv \"#{f}\" processed/") end sleep 0.5 end system("growlnotify -t 'Ruby' -m 'Finshed resizing images!'") puts "Done."