<?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() ;
 
?>
 
 |