- Timestamp:
- Oct 26, 2010, 10:48:08 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/AMetaData/JpegMetaData/Readers/JpegReader.class.php
r4972 r7399 85 85 */ 86 86 const JPEG_EOI = 0xFFD9; 87 /** 88 * start of scan tag 89 */ 90 const JPEG_SOS = 0xFFDA; 87 91 88 92 … … 174 178 fseek($this->fileHandler, -2, SEEK_END); 175 179 $header=fread($this->fileHandler, 2); 176 if(ConvertData::toUShort($header, BYTE_ORDER_BIG_ENDIAN) == self::JPEG_EOI) 177 { 178 /* 179 * the file ends with the good marker 180 */ 181 fseek($this->fileHandler, 0); 182 $header=fread($this->fileHandler, 2); 183 if(ConvertData::toUShort($header, BYTE_ORDER_BIG_ENDIAN) == self::JPEG_SOI) 184 { 185 return(true); 180 $haveEOI=(ConvertData::toUShort($header, BYTE_ORDER_BIG_ENDIAN) == self::JPEG_EOI); 181 182 // look if 2 first bytes of file are SOI 183 fseek($this->fileHandler, 0); 184 $header=fread($this->fileHandler, 2); 185 if(ConvertData::toUShort($header, BYTE_ORDER_BIG_ENDIAN) == self::JPEG_SOI) 186 { 187 //if file have EOI, it seems to be a valid JPEG file 188 if($haveEOI) return(true); 189 190 // otherwise, try to find SOS 191 while(!feof($this->fileHandler)) 192 { 193 $header=ConvertData::toUShort(fread($this->fileHandler, 2), BYTE_ORDER_BIG_ENDIAN); 194 195 if($header==self::JPEG_EOI or $header==self::JPEG_SOS ) 196 { 197 //seems to be a valid JPEG file 198 return(true); 199 } 200 elseif($header>>8==0xFF) 201 { 202 //seems to be a valid marker, jump to next marker... 203 $sizeBlock=ConvertData::toUShort(fread($this->fileHandler, 2), BYTE_ORDER_BIG_ENDIAN); 204 fseek($this->fileHandler, $sizeBlock-2, SEEK_CUR); 205 } 206 else 207 { 208 // not a marker, not e JPEG file 209 return(false); 210 } 186 211 } 187 212 }
Note: See TracChangeset
for help on using the changeset viewer.