class PDF::Writer::Graphics::ImageInfo

This is based on ImageSize, by Keisuke Minami <keisuke@rccn.com>. It can be found at www.rubycgi.org/tools/index.en.htm

This has been integrated into PDF::Writer because as yet there has been no response to emails asking for my extensions to be integrated and a RubyGem package to be made available.

Constants

JPEG_APP_BLOCKS
JPEG_SOF_BLOCKS
Type
XBM_DIMENSIONS_RE
XPM_DIMENSIONS_RE

Attributes

bits[R]
channels[R]
format[R]
get_height[R]
get_type[R]
get_width[R]
height[R]
info[R]
width[R]

Public Class Methods

formats() click to toggle source
# File lib/pdf/writer/graphics/imageinfo.rb, line 44
def formats
  Formats.constants
end
Also aliased as: type_list
new(data, format = nil) click to toggle source

Receive image & make size. argument is image String or IO

# File lib/pdf/writer/graphics/imageinfo.rb, line 54
def initialize(data, format = nil)
  @data   = data.dup rescue data
  @info   = {}

  if @data.kind_of?(IO)
    @top = @data.read(128)
    @data.seek(0, 0)
      # Define Singleton-method definition to IO (byte, offset)
    def @data.read_o(length = 1, offset = nil)
      self.seek(offset, 0) if offset
      ret = self.read(length)
      raise "cannot read!!" unless ret
      ret
    end
  elsif @data.is_a?(String)
    @top = @data[0, 128]
      # Define Singleton-method definition to String (byte, offset)
    @data.extend(PDF::Writer::OffsetReader)
  else
    raise "argument class error!! #{data.type}"
  end

  if format.nil?
    @format = discover_format
  else
    match = false
    Formats.constants.each { |t| match = true if format == t }
    raise("format is failed. #{format}\n") unless match
    @format = format
  end

  __send__("measure_#@format".intern) unless @format == Formats::OTHER

  @data = data.dup
end
type_list() click to toggle source
Alias for: formats