<?php
echo "<b>EXAMPLE 04</b>: we read some fields in the JPEG header<br><br>" ;
?>
We refer to this JFIF header structure in C.
<pre>
typedef struct _JFIFHeader
{
BYTE SOI[2]; /* 00h Start of Image Marker */
BYTE APP0[2]; /* 02h Application Use Marker */
BYTE Length[2]; /* 04h Length of APP0 Field */
BYTE Identifier[5]; /* 06h "JFIF" (zero terminated) Id String */
BYTE Version[2]; /* 07h JFIF Format Revision */
BYTE Units; /* 09h Units used for Resolution */
BYTE Xdensity[2]; /* 0Ah Horizontal Resolution */
BYTE Ydensity[2]; /* 0Ch Vertical Resolution */
BYTE XThumbnail; /* 0Eh Horizontal Pixel Count */
BYTE YThumbnail; /* 0Fh Vertical Pixel Count */
} JFIFHEAD;
</pre>
<?php // example 01 : simple open and close
require_once( "cfile.class.php" );
$CANDIDATEfile = "andromeda.jpg" ;
$cfile = new cfile( $CANDIDATEfile );
$bOPEN = $cfile->open( CFILE_READ_MODE );
$bERR = $cfile->is_error() ;
if ( $bOPEN && !$bERR ) // you can check open return value or internal error for safe operation
{
echo "OPEN FILE <b>$CANDIDATEfile</b> : SUCCESS<br>" ;
echo "FILE SIZE.".( filesize( $CANDIDATEfile ) )."<br>" ;
$bBEGIN = $cfile->move_to_beginning();
echo ( $bBEGIN ) ? "OK MOVE TO BEGINNING ...<br>" : "CAN'T MOVE TO THE BEGINNING ...<br>" ;
$nbytes = 2 ; // Start of Image Marker
$READ = $cfile->read( $nbytes, CFILE_BINARY_INT_MODE ) ;
$nbytes = 2 ; // Application Use Marker
$READ = $cfile->read( $nbytes, CFILE_BINARY_INT_MODE ) ;
$nbytes = 2 ; // Length of APP0 Field
$READ = $cfile->read( $nbytes, CFILE_BINARY_INT_MODE ) ;
$nbytes = 5 ; // IDENTIFIER JFIF
$READ = $cfile->read( $nbytes, CFILE_TEXT_MODE ) ;
echo ( $READ === false ) ? "CAN'T READ from file ... <b>".$cfile->get_error_string()."</b><br>" : "JFIF IDENTIFIER:<b>$READ</b><br>" ;
$nbytes = 1 ; // MAJOR VERSION JFIF
$READ = $cfile->read( $nbytes, CFILE_BINARY_INT_MODE ) ;
echo ( $READ === false ) ? "CAN'T READ from file ... <b>".$cfile->get_error_string()."</b><br>" : "MAJOR VERSION:<b>$READ</b><br>" ;
$nbytes = 1 ; // MINOR VERSION JFIF
$READ = $cfile->read( $nbytes, CFILE_BINARY_INT_MODE ) ;
echo ( $READ === false ) ? "CAN'T READ from file ... <b>".$cfile->get_error_string()."</b><br>" : "MINOR VERSION:<b>$READ</b><br>" ;
echo "<br>" ;
echo ( $cfile->close() ) ? "CLOSE FILE <b>$CANDIDATEfile</b> : SUCCESS" : $cfile->get_error_string() ;
}
else echo $cfile->get_error_string() ;
?>
|