Większość aparatów cyfrowych w pliku ze zdjęciem zapisuje nagłówki informujące o parametrach zrobionego zdjęcia, użytego aparatu. Dane te są zapisane w formacie IPTC i zawierają takie dane jak: datę i czas zrobienia zdjęcia, czas naświetlania, przysłonę, ogniskową, ISO, program paratu, nazwę producenta i modelu aparatu etc…
Informacje te można odczytywać i modyfikować w programach graficznych, standard IPTC szczególnie przydatny jest w fotografii stockowej (opis wykorzystania standardu IPTC).
Dane zapisane w pliku JPEG/TIFF możemy w prosty sposób odczytać w skrypcie PHP. Dostępna jest specjalna bibloteka EXIF, która nam to umożliwia. Aby móc korzystać z tej biblioteki PHP musi być skompilowane z opcjami –enable-exif i –enable-mbstring.
Poniżej przykładowa funkcja, zwracająca informacje o zdjęciu
/** * Metoda zwraca informacje o zdjęciu * * @param string $file - sciezka do zdjecia * @return array od mixed - informacje o zdjeciu * @access public */ function getImageInfo( $file ) { $exif = exif_read_data( $file, "IFD0" ); if( $exif ) { $return exif_read_data( $file, 0, true ); } }
Funkcja zwraca tablice z danymi, które możemy zaprezentować na stronie przy zdjęciu.
Poniżej przykładowy wynik powyższej metody.
Array ( [FILE] => Array ( [FileName] => IMG_7378.jpg [FileDateTime] => 1198952415 [FileSize] => 1240033 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF ) [COMPUTED] => Array ( => width="2664" height="2304" [Height] => 2304 [Width] => 2664 [IsColor] => 1 [ByteOrderMotorola] => 0 [CCDWidth] => 17mm [ApertureFNumber] => f/18.0 [Thumbnail.FileType] => 2 [Thumbnail.MimeType] => image/jpeg ) [IFD0] => Array ( [ImageDescription] => Red Tomato isolated on white background [Make] => Canon [Model] => Canon EOS 350D DIGITAL [Orientation] => 1 [XResolution] => 2400000/10000 [YResolution] => 2400000/10000 [ResolutionUnit] => 2 [Software] => Adobe Photoshop CS3 Windows [DateTime] => 2007:12:29 19:20:14 [Artist] => Marcin Mamala [Exif_IFD_Pointer] => 296 ) [THUMBNAIL] => Array ( [Compression] => 6 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [JPEGInterchangeFormat] => 798 [JPEGInterchangeFormatLength] => 3028 ) [EXIF] => Array ( [ExposureTime] => 1/20 [FNumber] => 18 [ExposureProgram] => 1 [ISOSpeedRatings] => 100 [ExifVersion] => 0221 [DateTimeOriginal] => 2007:12:29 18:06:50 [DateTimeDigitized] => 2007:12:29 18:06:50 [ShutterSpeedValue] => 4321928/1000000 [ApertureValue] => 833985/100000 [ExposureBiasValue] => 0/2 [MaxApertureValue] => 434375/100000 [MeteringMode] => 5 [Flash] => 16 [FocalLength] => 43 [ColorSpace] => 65535 [ExifImageWidth] => 2664 [ExifImageLength] => 2304 [FocalPlaneXResolution] => 3456000/874 [FocalPlaneYResolution] => 2304000/582 [FocalPlaneResolutionUnit] => 2 [CustomRendered] => 0 [ExposureMode] => 1 [WhiteBalance] => 0 [SceneCaptureType] => 0 ) )