Bir fotoğraf bin kelimeye bedeldir ama ne yazık ki aynı lafı herşeyi 0 ve 1 olarak gören bilgisayarlar ve makinalar için söyleyemiyoruz. En çok da arama motorları sitenizi tararken fotoğraflar çok da anlam ifade etmemektedir.Sadece makinalar değil, aynı zamanda insanlar da bir fotoğraf gösterdiğinizde o fotoğrafın hikayesini bilmeden veya zaten o fotoğraf ile ilgili geçmişten herhangi bir bilgiye sahip olmadan anlamlandıramayacaktır.Peki, fotoğrafları anlamlandırmanın bir yöntemi yok mu? Kısa cevap var!IPTC (International Press Telecommunications Council) Photo Metadata ismiyle bu standartı geliştirmekte ve fotoğraf işleme yazılımlarının çoğu bu standartı kullanmakta.Gelelim saadete;Bir web geliştiricisi siteye içerik olarak fotoğraf yüklendiğinde o fotoğrafı anlandırmak için etiketlemeli ve daha sonradan fotoğraf hakkında herhangi bilgisi olmayan birine fotoğrafın ne olduğunu metadata (üstbilgi) ile anlatabilmelidir.Aşağıdaki kodda bunu yapıyoruz.IPTC Photo Metadata işlemlerini yapan sınıfımıziptc.class.php hasmeta = isset($info[“APP13”]);if($this->hasmeta)$this->meta = iptcparse ($info[“APP13”]);$this->file = $filename;}function set($tag, $data) {$this->meta [“2#$tag”]= Array( $data );$this->hasmeta=true;}function get($tag) {return isset($this->meta[“2#$tag”]) ? $this->meta[“2#$tag”][0] : false;}function dump() {print_r($this->meta);}function binary() {$iptc_new = ”;foreach (array_keys($this->meta) as $s) {$tag = str_replace(“2#”, “”, $s);$iptc_new .= $this->iptc_maketag(2, $tag, $this->meta[$s][0]);}return $iptc_new;}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;}}function write() {if(!function_exists(‘iptcembed’)) return false;$mode = 0;$content = iptcembed($this->binary(), $this->file, $mode);$filename = $this->file;@unlink($filename); #delete if exists$fp = fopen($filename, “w”);fwrite($fp, $content);fclose($fp);}#requires GD library installedfunction removeAllTags() {$this->hasmeta=false;$this->meta=Array();$img = imagecreatefromstring(implode(file($this->file)));@unlink($this->file); #delete if existsimagejpeg($img,$this->file,100);}};?> Yükleme işleminin yapıldığı sayfayukle.php set(IPTC_CAPTION, “Fotoğraf başlığı yazılacak”);$iptc->set(IPTC_LOCAL_CAPTION, “Fotoğraf başlığının başka bir dildeki tercümesi yazılacak”);$iptc->set(IPTC_HEADLINE, “Buraya fotoğrafın açıklaması, hikayesi yazılacak”);$iptc->set(IPTC_KEYWORDS, “kodaman, iptc, örnek”);$iptc->set(IPTC_CREDIT, “KODAMAN.ORG”);$iptc->set(IPTC_RELEASE_DATE, date(“d.m.Y”));$iptc->set(IPTC_BYLINE, “Parahat Melayev”);$iptc->set(IPTC_BYLINE_TITLE, “Web Developer”);$iptc->write();}}?>