Class | FileHandlers::ThumbnailWriter |
In: |
lib/webgen/plugins/filehandlers/gallery.rb
|
Parent: | DefaultHandler |
Used for creating thumbnails for images.
# File lib/webgen/plugins/filehandlers/gallery.rb, line 442 442: def create_node( file, parent, meta_info, thumbnailSize = nil, method = nil ) 443: name = 'tn_' + File.basename( file ).tr( ' ', '_' ) 444: if !parent || !(node = parent.find {|c| c =~ name }) 445: node = Node.new( parent, name ) 446: node.meta_info.update( meta_info ) 447: node['title'] = node.path 448: node.node_info[:thumbnail_size] = thumbnailSize || param( 'thumbnailSize' ) 449: node.node_info[:thumbnail_file] = file 450: node.node_info[:thumbnail_resize_method] = method || param( 'resizeMethod' ) 451: node.node_info[:processor] = self 452: end 453: 454: node 455: end
# File lib/webgen/plugins/filehandlers/gallery.rb, line 457 457: def write_node( node ) 458: if @plugin_manager['Core/FileHandler'].file_modified?( node.node_info[:thumbnail_file], node.full_path ) 459: log(:info) {"Creating thumbnail <#{node.full_path}> from image <#{node.node_info[:thumbnail_file]}>"} 460: image = Magick::ImageList.new( node.node_info[:thumbnail_file] ).first 461: case node.node_info[:thumbnail_resize_method] 462: when :cropped then cropped_thumbnail( image, node.node_info[:thumbnail_size] ) 463: when :normal then normal_thumbnail( image, node.node_info[:thumbnail_size] ) 464: else 465: log(:warn) {"Invalid resize method specified (#{node.node_info[:thumbnail_resize_method].inspect}), falling back to :normal"} 466: normal_thumbnail( image, node.node_info[:thumbnail_size] ) 467: end 468: image.write( node.full_path ) 469: end 470: end
# File lib/webgen/plugins/filehandlers/gallery.rb, line 478 478: def cropped_thumbnail( image, size ) 479: image.crop_resized!( *size.split('x').collect {|s| s.to_i} ) 480: end