| 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