Module: Dimensions::TiffScanning
- Included in:
- ExifScanner, TiffScanner
- Defined in:
- lib/dimensions/tiff_scanning.rb
Instance Method Summary collapse
- #read_integer_value ⇒ Object
- #scan_and_skip_to_offset ⇒ Object
- #scan_endianness ⇒ Object
- #scan_header ⇒ Object
- #scan_ifd ⇒ Object
- #scan_tag_mark ⇒ Object
Instance Method Details
#read_integer_value ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dimensions/tiff_scanning.rb', line 34 def read_integer_value type = read_short advance(4) if type == 3 read_short elsif type == 4 read_long else raise_scan_error end end |
#scan_and_skip_to_offset ⇒ Object
18 19 20 21 |
# File 'lib/dimensions/tiff_scanning.rb', line 18 def scan_and_skip_to_offset offset = read_long skip_to(offset) end |
#scan_endianness ⇒ Object
9 10 11 12 |
# File 'lib/dimensions/tiff_scanning.rb', line 9 def scan_endianness tag = [read_char, read_char] tag == [0x4D, 0x4D] ? big! : little! end |
#scan_header ⇒ Object
3 4 5 6 7 |
# File 'lib/dimensions/tiff_scanning.rb', line 3 def scan_header scan_endianness scan_tag_mark scan_and_skip_to_offset end |
#scan_ifd ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/dimensions/tiff_scanning.rb', line 23 def scan_ifd offset = pos entry_count = read_short entry_count.times do |i| skip_to(offset + 2 + (12 * i)) tag = read_short yield tag end end |
#scan_tag_mark ⇒ Object
14 15 16 |
# File 'lib/dimensions/tiff_scanning.rb', line 14 def scan_tag_mark raise_scan_error unless read_short == 0x002A end |