Class FileHandlers::ThumbnailWriter
In: lib/webgen/plugins/filehandlers/gallery.rb
Parent: DefaultHandler
Webgen::Plugin DefaultHandler FileHandler CopyHandler ThumbnailWriter SipttraHandler VirtualFileHandler GalleryHandler TemplateHandler PageHandler DirectoryHandler Listener lib/webgen/plugins/filehandlers/filehandler.rb lib/webgen/plugins/filehandlers/copy.rb lib/webgen/plugins/filehandlers/directory.rb lib/webgen/plugins/filehandlers/page.rb lib/webgen/plugins/filehandlers/sipttra.rb lib/webgen/plugins/filehandlers/gallery.rb lib/webgen/plugins/filehandlers/template.rb FileHandlers dot/m_26_0.png

Used for creating thumbnails for images.

Methods

Public Instance methods

[Source]

     # 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

[Source]

     # 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

Private Instance methods

[Source]

     # 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

[Source]

     # File lib/webgen/plugins/filehandlers/gallery.rb, line 474
474:       def normal_thumbnail( image, size )
475:         image.change_geometry( size ) {|c,r,i| i.resize!( c, r )}
476:       end

[Validate]