Module: ImageFilterDsl::Engine::IO

Defined in:
lib/image_filter_dsl/engine/io.rb

Overview

I/O methods for reading/writing Filter Kernel data to files

Defined Under Namespace

Modules: DataFormat

Class Method Summary collapse

Class Method Details

.read(filename, format = DataFormat::KERNEL) ⇒ Dsl::Kernel::FilterKernel|Binary::Struct::IfdKernel

Read Filter Kernel from file

Parameters:

  • filename (String)

    Filename to read from

  • format (Symbol) (defaults to: DataFormat::KERNEL)

    Format to return (constants from DataFormat module; KERNEL or RECORD)

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/image_filter_dsl/engine/io.rb', line 30

def self.read(filename, format=DataFormat::KERNEL)
    record = Binary::Struct::IfdKernel.new
    File.open(filename, 'rb'){|f| record.read(f) }

    if format == DataFormat::RECORD
        return record
    else
        return Binary::Serialize.to_kernel(record)
    end
end

.write(filename, filter) ⇒ Binary::Struct::IfdKernel

Write filter kernel to file

Parameters:

Returns:



46
47
48
49
50
51
52
53
54
55
# File 'lib/image_filter_dsl/engine/io.rb', line 46

def self.write(filename, filter)
    rec = nil
    if filter.is_a?(Dsl::Kernel::FilterKernel)
        rec = Binary::Serialize.to_record(filter)
    elsif filter.is_a?(Binary::Struct::IfdKernel)
        rec = filter
    end

    File.open(filename, 'wb') { |f| rec.write(f) }
end