Sha256: f39c00142e33840eb7ba1938b4512a4016d6e6b8a96efef8ed20211122c8033b

Contents?: true

Size: 530 Bytes

Versions: 9

Compression:

Stored size: 530 Bytes

Contents

Spontaneous::Media::Image.define :jpg, [255, 216] do |file|
  markers = [192, 193, 194, 195, 197, 198, 199, 201, 202, 203, 205, 206, 207]
  height = width = 0
  c_marker = 255 # Section marker.
  file.seek(2)
  while(true)
    marker, code, length = file.read(4).unpack('CCn')
    raise "Invalid JPG file: marker not found! '#{file.path}'" if marker != c_marker

    if markers.include?(code)
      height, width = file.read(5).unpack('xnn')
      break
    end
    file.seek(length - 2, IO::SEEK_CUR)
  end
  [width, height]
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta10 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta9 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta8 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta7 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta6 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta5 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta4 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta3 lib/spontaneous/media/image/format/jpg.rb
spontaneous-0.2.0.beta2 lib/spontaneous/media/image/format/jpg.rb