Class: Pura::Png::Encoder

Inherits:
Object
  • Object
show all
Defined in:
lib/pura/png/encoder.rb

Constant Summary collapse

PNG_SIGNATURE =
[137, 80, 78, 71, 13, 10, 26, 10].pack("C8")

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(image, compression: 6) ⇒ Encoder

Returns a new instance of Encoder.



17
18
19
20
# File 'lib/pura/png/encoder.rb', line 17

def initialize(image, compression: 6)
  @image = image
  @compression = compression
end

Class Method Details

.encode(image, output_path, compression: 6) ⇒ Object



10
11
12
13
14
15
# File 'lib/pura/png/encoder.rb', line 10

def self.encode(image, output_path, compression: 6)
  encoder = new(image, compression: compression)
  data = encoder.encode
  File.binwrite(output_path, data)
  data.bytesize
end

Instance Method Details

#encodeObject



22
23
24
25
26
27
28
29
# File 'lib/pura/png/encoder.rb', line 22

def encode
  out = String.new(encoding: Encoding::BINARY)
  out << PNG_SIGNATURE
  out << make_chunk("IHDR", ihdr_data)
  out << make_chunk("IDAT", idat_data)
  out << make_chunk("IEND", "")
  out
end