fork download
  1. <?php
  2. // $size = getimagesize('./wewillwatermarkyou-iptc-gd.jpg', $info);
  3. // if(isset($info['APP13']))
  4. // {
  5. // $iptc = iptcparse($info['APP13']);
  6. // var_dump($iptc);
  7. // }
  8.  
  9. // die;
  10.  
  11. // Thies C. Arntzen'in yazdığı iptc_make_tag() işlevi
  12. function iptc_make_tag($rec, $data, $value)
  13. {
  14. $length = strlen($value);
  15. $retval = chr(0x1C) . chr($rec) . chr($data);
  16.  
  17. if($length < 0x8000)
  18. {
  19. $retval .= chr($length >> 8) . chr($length & 0xFF);
  20. }
  21. else
  22. {
  23. $retval .= chr(0x80) .
  24. chr(0x04) .
  25. chr(($length >> 24) & 0xFF) .
  26. chr(($length >> 16) & 0xFF) .
  27. chr(($length >> 8) & 0xFF) .
  28. chr($length & 0xFF);
  29. }
  30.  
  31. return $retval . $value;
  32. }
  33.  
  34. // jpeg dosyasının yolu
  35. $path = './wewillwatermarkyou.jpg';
  36.  
  37. // Önce jpeg dosyasında IPTC verisi var mı diye bakacağız.
  38. // Varsa vazgeçeceğiz, çünkü IPTC verisi varsa herhangi bir resim gömemeyiz!
  39. $image = getimagesize($path, $info);
  40.  
  41. if(isset($info['APP13']))
  42. {
  43. die('Hata: Belirtilen resimde IPTC verisi bulundu, devam edilemiyor.');
  44. }
  45.  
  46. // IPTC etiketlerini düzenleyelim
  47. $iptc = array(
  48. '2#025' => 'KEYWORDS',
  49. '2#005' => 'OBJECT_NAME',
  50. '2#007' => 'EDIT_STATUS',
  51. '2#010' => 'PRIORITY',
  52. '2#015' => 'CATEGORY',
  53. '2#020' => 'SUPPLEMENTAL_CATEGORY',
  54. '2#022' => 'FIXTURE_IDENTIFIER',
  55. '2#030' => 'RELEASE_DATE',
  56. '2#035' => 'RELEASE_TIME',
  57. '2#040' => 'SPECIAL_INSTRUCTIONS',
  58. '2#045' => 'REFERENCE_SERVICE',
  59. '2#047' => 'REFERENCE_DATE',
  60. '2#050' => 'REFERENCE_NUMBER',
  61. '2#055' => 'CREATED_DATE',
  62. '2#060' => 'CREATED_TIME',
  63. '2#065' => 'ORIGINATING_PROGRAM',
  64. '2#070' => 'PROGRAM_VERSION',
  65. '2#075' => 'OBJECT_CYCLE',
  66. '2#090' => 'CITY',
  67. '2#095' => 'PROVINCE_STATE',
  68. '2#100' => 'COUNTRY_CODE',
  69. '2#101' => 'COUNTRY',
  70. '2#103' => 'ORIGINAL_TRANSMISSION_REFERENCE',
  71. '2#105' => 'HEADLINE',
  72. '2#110' => 'CREDIT',
  73. '2#115' => 'SOURCE',
  74. '2#116' => 'COPYRIGHT_STRING',
  75. '2#120' => 'CAPTION',
  76. '2#121' => 'LOCAL_CAPTION',
  77. '2#122' => 'CAPTION_WRITER',
  78. );
  79.  
  80. // IPTC etiketlerini ikil veriye dönüştürelim
  81. $data = '';
  82.  
  83. foreach($iptc as $tag => $string)
  84. {
  85. $tag = substr($tag, 2);
  86. $data .= iptc_make_tag(2, $tag, $string);
  87. }
  88. $img = imagecreatefromjpeg('./wewillwatermarkyou.jpg');
  89.  
  90. // IPTC verisini resme gömelim.
  91. $content = iptcembed($data, "php://temp/maxmemory:$img");
  92. //header('Content-type: image/jpeg');
  93. //print_r($data); die;
  94.  
  95. // Yeni resim verisini dosyaya yazalım.
  96. $fp = fopen($path.'-iptc-gd.jpg', "wb");
  97. fwrite($fp, $content);
  98. fclose($fp);
  99. ?>
Success #stdin #stdout #stderr 0.01s 20568KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Warning:  getimagesize(./wewillwatermarkyou.jpg): failed to open stream: No such file or directory in /home/uycXPZ/prog.php on line 39
PHP Warning:  imagecreatefromjpeg(./wewillwatermarkyou.jpg): failed to open stream: No such file or directory in /home/uycXPZ/prog.php on line 88
PHP Warning:  iptcembed(): Unable to open php://temp/maxmemory: in /home/uycXPZ/prog.php on line 91
PHP Warning:  fopen(./wewillwatermarkyou.jpg-iptc-gd.jpg): failed to open stream: Permission denied in /home/uycXPZ/prog.php on line 96
PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /home/uycXPZ/prog.php on line 97
PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in /home/uycXPZ/prog.php on line 98