# gems require 'rubygems' require 'RMagick' class ImageFile attr_reader :image_pool # properties of image attr_reader :size attr_reader :width attr_reader :height # # page_url is the url of html page relative to the webroot f.e. "img_88.html" # used to link html pages # url is the name of image f.e. "img_88.jpg" # used in the src=<...> of the image tag # def initialize( image_pool, local_path, src_url, page_url ) @image_pool = image_pool @src_url = src_url @page_url = page_url if not File.exist?(local_path) raise RAlbumException.new "file '#{local_path}' not exist" end if File.directory?(local_path) raise RAlbumException.new "expected '#{local_path}' as file but it is a directory" end image = Magick::Image::read(local_path).first @width = image.columns @height = image.rows @size = image.filesize / 1024 end ############################################################################# # properties # def name @image_pool.name end def description @image_pool.description end ############################################################################# # paths attr_reader :src_url # path where is the image attr_reader :page_url # url of html page displaying the image def page_url_from_root @image_pool.path + "/" + page_url end def relroot @image_pool.relroot end def relroot_with_prefix @image_pool.relroot_with_prefix end def breadcrumbs @image_pool.breadcrumbs end def prev_page_url if @image_pool.prev @image_pool.prev.default_image_file.page_url else nil end end def next_page_url if @image_pool.next @image_pool.next.default_image_file.page_url else nil end end end