32 lines
1.3 KiB
Ruby
32 lines
1.3 KiB
Ruby
# on MacOS install the following:
|
|
# brew install imagemagick mozjpeg
|
|
# ln -s /usr/local/Cellar/mozjpeg/{version}/bin/cjpeg /usr/local/bin/mozcjpeg
|
|
|
|
require 'pathname'
|
|
require 'image_processing/mini_magick'
|
|
|
|
namespace :images do
|
|
task :resize do
|
|
board_images_path = File.expand_path('../../assets/images/boards', __dir__)
|
|
original_images_path = File.join(board_images_path, 'original')
|
|
|
|
Pathname.new(original_images_path).children.each do |path|
|
|
next unless path.file?
|
|
puts "processing #{path}"
|
|
original_image = File.join(original_images_path, path.basename)
|
|
large_image = File.join(board_images_path, 'large', path.basename)
|
|
small_image = File.join(board_images_path, 'small', path.basename)
|
|
|
|
small_processed = ImageProcessing::MiniMagick.source(original_image)
|
|
.resize_to_limit(300, 225)
|
|
.call
|
|
|
|
large_processed = ImageProcessing::MiniMagick.source(original_image)
|
|
.resize_to_limit(800, 600)
|
|
.call
|
|
|
|
`mozcjpeg -quality 80 -optimize -outfile #{large_image} #{large_processed.path}`
|
|
`mozcjpeg -quality 80 -optimize -outfile #{small_image} #{small_processed.path}`
|
|
end
|
|
end
|
|
end
|