[PHP] Datum uit afbeelding met functie exif_read_data()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag de datum uit een digitale afbeelding halen. Dit wil ik dan doen met de functie exif_read_data(). Het probleem is dat dit alleen niet wil met de volgende code:

$exif = exif_read_data('mijnbestanden/' . $naam);
foreach($exif['IFDO'] as $key => $value) {
$temp['datetime'] = $exif['IFDO'][$key];
}

$datetime = $exif['IFDO']['DateTime'];

Op het moment dat deze code wordt uitgevoerd krijg ik de fout:
Invalid argument supplied for foreach() ... on Line 52

Maar wanneer ik IFDO vervang door COMPUTED en DateTime door bijv Width dan pakt hij de breedte van de afbeelding. Dit wil dus wel..

Kan iemand mij vertellen wat ik fout doe ? Of hoe ik het anders zou moeten aanpakken.. Alvast bedankt! _/-\o_

Groeten Emiel

Acties:
  • 0 Henk 'm!

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
Bestaat het element 'IFDO' wel in je $exif array? doe eens een print_r van je $exif array en check of het element wel bestaat/toegankelijk is.

[ Voor 87% gewijzigd door MissingDog op 05-04-2007 14:07 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De volgende code wordt weergegeven met print_r():

Array ( [FILE] => Array ( [FileName] => DSC00251.JPG [FileDateTime] => 1175776342 [FileSize] => 2493418 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, COMMENT, EXIF ) [COMPUTED] => Array ( [html] => width="2048" height="1536" [Height] => 1536 [Width] => 2048 [IsColor] => 1 [ByteOrderMotorola] => 0 ) [IFD0] => Array ( [Orientation] => 1 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [YCbCrPositioning] => 1 [Exif_IFD_Pointer] => 102 ) [COMMENT] => Array ( [0] => ACD Systems Digital Imaging ) [EXIF] => Array ( [ExifVersion] => 0200 [ComponentsConfiguration] => [FlashPixVersion] => 0101 [ColorSpace] => 1 [ExifImageWidth] => 2048 [ExifImageLength] => 1536 ) )

IFDO.DateTime staat er niet tussen. Maar bij het oproepen van de complete $exif met de code:
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
echo "$key.$name: $val<br />\n";
}
}
Krijg je onderstaande uitwerking.

FILE.FileName: DSC01366.JPG
FILE.FileDateTime: 1175775420
FILE.FileSize: 896866
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
COMPUTED.html: width="1600" height="1200"
COMPUTED.Height: 1200
COMPUTED.Width: 1600
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 0
COMPUTED.ApertureFNumber: f/4.0
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
IFD0.ImageDescription:
IFD0.Make: SONY
IFD0.Model: MAVICA
IFD0.Orientation: 1
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.DateTime: 2006:06:30 17:04:25
IFD0.YCbCrPositioning: 2
IFD0.Exif_IFD_Pointer: 224
.. etc..

[ Voor 35% gewijzigd door Verwijderd op 05-04-2007 14:34 ]


Acties:
  • 0 Henk 'm!

  • erikvdv1
  • Registratie: December 2005
  • Laatst online: 19:06
IFDO = IFD0 (nul op het eind)

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Het is inderdaad met hoofdletters ifd en dan een nul. Verder had je dit wel kunnen uitvinden door een print_r te doen, een 0 en O zijn wel duidelijk te onderscheiden. En met een copy/paste weet je het zeker ;)

Plaats in het vervolg je code wel tussen [php][/php] tags ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zal de code de volgende keer wel even tussen tags zetten. Bedankt voor jullie reactie. Idd dom 0 O te verwisselen maar heb er over heen gelezen.
Pagina: 1