X-Git-Url: https://git.draconx.ca/gitweb/homepage.git/blobdiff_plain/da38a0de6d2814c450ea356412faa03ee54cad68..4f4b3ddd920c95d380a2f25dabd4b68457bb1564:/lib/imgresize.rb diff --git a/lib/imgresize.rb b/lib/imgresize.rb new file mode 100644 index 0000000..e539f37 --- /dev/null +++ b/lib/imgresize.rb @@ -0,0 +1,37 @@ +# Nick's web site: imgresize filter. Helper for resizing images during site +# compilations for thumbnails, etc. +# +# Copyright © 2016, 2020 Nick Bowler +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +class ImgResize < Nanoc::Filter + identifier :imgresize + type :binary + + def run(filename, params = {}) + w = if params[:width] then params[:width].to_i end + h = if params[:height] then params[:height].to_i end + scale = [w, h && "x", h].join + + args = ["-scale", scale, filename] + case filename + when /\.jpg$/ + args << "-quality" << "85" + end + args << output_filename + + system('gm', 'convert', *args) + end +end