phpbar.de logo

Mailinglisten-Archive

[php] IPTC

[php] IPTC

Thies C. Arntzen php_(at)_phpcenter.de
Mon, 3 Dec 2001 08:43:23 +0100


On Wed, Nov 28, 2001 at 12:53:43PM +0100, Joerg Behrens wrote:
> Moin,
> 
> ----- Original Message -----
> From: "Heinz Vogelsanger" <phplist_(at)_vogelsanger.net>
> To: <php_(at)_phpcenter.de>
> Sent: Wednesday, November 28, 2001 12:34 PM
> Subject: [php] IPTC
> 
> 
> > Moin
> >
> > ich lese die IPTC Informationen von Bildern aus. Mit ipctparse()
> > geht das prächtig.
> >
> > Nun sollte es auch möglich sein, weitere Beschreibungen mittels PHP in das
> > Bild einzufügen.
> >
> > Ich habe mal testweise neue Bildbeschreibungen mit vi an die richtige
> Stelle
> > eingefügt. Leider wurde bei Aenderungen das Bild nicht mehr als gültiges
> .jpg
> > erkannt.
> 
> Benutze doch einfach die undokumentierte PHP Funktion iptcembed()
> Siehe auch
> http://www.zugeschaut-und-mitgebaut.de/php/function.iptcembed.html
> 
> Leider ist das nicht ganz so einfach. Es gibt von Thies hier im Archiv der
> Liste ein kl. Beispiel. Mir ist es zwar gelungen damit Daten
> hineinzuschreiben... auch das wiederauslesen klappte. Allerdings war das
> Bild danach *brocken*. Solltest du es hinbekommen waere ich daran
> interessiert.
> 
> Gruss
> Joerg *diesmal mit richtige Adresse* Behrens


<?php
function iptc_maketag($rec,$dat,$val)
{ $len = strlen($val);
  if ($len < 0x8000)
	return chr(0x1c).chr($rec).chr($dat).
	       chr($len >> 8).
		   chr($len & 0xff).
		   $val;
  else
	return chr(0x1c).chr($rec).chr($dat).
		   chr(0x80).chr(0x04).
		   chr(($len >> 24) & 0xff).
		   chr(($len >> 16) & 0xff).
		   chr(($len >> 8 ) & 0xff).
		   chr(($len      ) & 0xff).
		   $val;
}

$iptcbuffer = iptc_maketag(2,115,"value for source field").iptc_maketag(2,120,"value for caption");
$buffer = iptcembed($iptcbuffer,$argv[ 1 ],0);
$fp = fopen($argv[ 2 ],"w");
fwrite($fp,$buffer);
fclose($fp);
?>

sollte eigentlich "tun"

tc


php::bar PHP Wiki   -   Listenarchive