Changeset 10862 in josm for trunk/src/com/drew/imaging/jpeg/JpegSegmentReader.java
- Timestamp:
- 2016-08-20T20:58:03+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/drew/imaging/jpeg/JpegSegmentReader.java
r8132 r10862 1 1 /* 2 * Copyright 2002-201 5Drew Noakes2 * Copyright 2002-2016 Drew Noakes 3 3 * 4 4 * Licensed under the Apache License, Version 2.0 (the "License"); … … 43 43 public class JpegSegmentReader 44 44 { 45 /** 46 * The 0xFF byte that signals the start of a segment. 47 */ 48 private static final byte SEGMENT_IDENTIFIER = (byte) 0xFF; 49 45 50 /** 46 51 * Private, because this segment crashes my algorithm, and searching for it doesn't work (yet). … … 112 117 // by a 0xFF and then a byte not equal to 0x00 or 0xFF. 113 118 114 final short segmentIdentifier = reader.getUInt8(); 119 byte segmentIdentifier = reader.getInt8(); 120 byte segmentType = reader.getInt8(); 115 121 116 // We must have at least one 0xFF byte 117 if (segmentIdentifier != 0xFF) 118 throw new JpegProcessingException("Expected JPEG segment start identifier 0xFF, not 0x" + Integer.toHexString(segmentIdentifier).toUpperCase()); 119 120 // Read until we have a non-0xFF byte. This identifies the segment type. 121 byte segmentType = reader.getInt8(); 122 while (segmentType == (byte)0xFF) 123 segmentType = reader.getInt8(); 124 125 if (segmentType == 0) 126 throw new JpegProcessingException("Expected non-zero byte as part of JPEG marker identifier"); 122 // Read until we have a 0xFF byte followed by a byte that is not 0xFF or 0x00 123 while (segmentIdentifier != SEGMENT_IDENTIFIER || segmentType == SEGMENT_IDENTIFIER || segmentType == 0) { 124 segmentIdentifier = segmentType; 125 segmentType = reader.getInt8(); 126 } 127 127 128 128 if (segmentType == SEGMENT_SOS) {
Note:
See TracChangeset
for help on using the changeset viewer.
