class Prawn::Images::JPG
A convenience class that wraps the logic for extracting the parts of a JPG
image that we need to embed them in a PDF
Constants
- JPEG_APP_BLOCKS
- JPEG_SOF_BLOCKS
Attributes
bits[R]
channels[R]
height[R]
scaled_height[RW]
scaled_width[RW]
width[R]
Public Class Methods
new(data)
click to toggle source
Process a new JPG
image
:data
-
A binary string of JPEG data
# File lib/prawn/images/jpg.rb, line 27 def initialize(data) data = StringIO.new(data.dup) c_marker = "\xff" # Section marker. data.read(2) # Skip the first two bytes of JPEG identifier. loop do marker, code, length = data.read(4).unpack('aan') raise "JPEG marker not found!" if marker != c_marker if JPEG_SOF_BLOCKS.include?(code) @bits, @height, @width, @channels = data.read(6).unpack("CnnC") break end buffer = data.read(length - 2) end end