class DynamicImage::ImageReader
Public Class Methods
new(data)
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 5 def initialize(data) @data = data end
Public Instance Methods
format()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 9 def format DynamicImage::Format.sniff(file_header) end
read()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 13 def read raise DynamicImage::Errors::InvalidHeader unless valid_header? if @data.is_a?(String) Vips::Image.new_from_buffer(@data, option_string) else Vips::Image.new_from_file(@data.path + option_string, access: :random) end end
valid_header?()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 23 def valid_header? format ? true : false end
Private Instance Methods
file_header()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 29 def file_header @file_header ||= read_file_header end
option_string()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 33 def option_string format.animated? ? "[n=-1]" : "" end
read_file_header()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 37 def read_file_header data_stream = stream header = data_stream.read(8) data_stream.seek((0 - header.length), IO::SEEK_CUR) if header header end
stream()
click to toggle source
# File lib/dynamic_image/image_reader.rb, line 44 def stream return StringIO.new(@data, "rb") if @data.is_a?(String) @data end