Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Прочитать тег из EXIF


Автор: Rigel 15.8.2015, 17:49
Читаю EXIF из фотографии с помощью exif_read_data - и все бы было хорошо, но тег LensModel почему-то не возвращается - а вьюверы, между тем, пишут, каким объективом сдалана фотография. Этому тегу соответствует код 0xa434, только вот как бы его содержимое из файла считать? Или есть другие способы получить ID объектива? Потому что в возвращаемом exif_read_data массиве ничего подобного этому ID нету.
Код

Array
(
    [FileName] => 11730.jpg
    [FileDateTime] => 1439072111
    [FileSize] => 957344
    [FileType] => 2
    [MimeType] => image/jpeg
    [SectionsFound] => ANY_TAG, IFD0, EXIF, GPS, APP12
    [COMPUTED] => Array
        (
            [html] => width="2000" height="1454"
            [Height] => 1454
            [Width] => 2000
            [IsColor] => 1
            [ByteOrderMotorola] => 0
            [CCDWidth] => 11mm
            [ApertureFNumber] => f/4.5
        )

    [Make] => SONY
    [Model] => SLT-A99
    [XResolution] => 300/1
    [YResolution] => 300/1
    [ResolutionUnit] => 2
    [Software] => SLT-A99 v1.02
    [DateTime] => 2015-08-08T21:40:30
    [Exif_IFD_Pointer] => 188
    [GPS_IFD_Pointer] => 698
    [ExposureTime] => 1/200
    [FNumber] => 45/10
    [ExposureProgram] => 3
    [ISOSpeedRatings] => 100
    [ExifVersion] => 0220
    [DateTimeOriginal] => 2015:08:08 14:17:44
    [DateTimeDigitized] => 2015:08:08 14:17:44
    [ShutterSpeedValue] => 7643856/1000000
    [ApertureValue] => 433985/100000
    [BrightnessValue] => 19424/2560
    [ExposureBiasValue] => 0/10
    [MaxApertureValue] => 1110/256
    [MeteringMode] => 5
    [LightSource] => 0
    [Flash] => 16
    [FocalLength] => 900/10
    [ExifImageWidth] => 2000
    [ExifImageLength] => 1454
    [FocalPlaneXResolution] => 54965632/32768
    [FocalPlaneYResolution] => 54965632/32768
    [FocalPlaneResolutionUnit] => 3
    [FileSource] => 
    [SceneType] => 
    [ExposureMode] => 0
    [WhiteBalance] => 0
    [DigitalZoomRatio] => 16/16
    [FocalLengthIn35mmFilm] => 90
    [SceneCaptureType] => 0
    [Contrast] => 0
    [Saturation] => 0
    [Sharpness] => 0
    [GPSVersion] => 
    [GPSLatitudeRef] => N
    [GPSLatitude] => Array
        (
            [0] => 55/1
            [1] => 43/1
            [2] => 5139/125
        )

    [GPSLongitudeRef] => E
    [GPSLongitude] => Array
        (
            [0] => 37/1
            [1] => 35/1
            [2] => 5919/100
        )

    [GPSAltitudeRef] => 
    [GPSAltitude] => 117/1
    [Company] => Ducky
    [Info] => 
)

Автор: ksnk 19.12.2015, 11:48
Если еще актуально - http://php.net/manual/ru/function.exif-read-data.php#117355 - чтение атрибута Orientation вручную, прямо из файла. 

Некое сомнение имеется, насчет применимости регулярки к многомегабайтным файлам. К счастью, exif располагается в начале файла, так что, на самом деле придется читать  в небольшой буфер. Но это уже детали. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)