Php/docs/function.iptcembed
iptcembed
(PHP 4, PHP 5, PHP 7)
iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中
说明
iptcembed
( string $iptcdata
, string $jpeg_file_name
[, int $spool
] ) : mixed
Embeds binary IPTC data into a JPEG image.
参数
iptcdata
- The data to be written.
jpeg_file_name
- Path to the JPEG image.
spool
- Spool flag. If the spool flag is over 2 then the JPEG will be returned as a string.
返回值
If success and spool flag is lower than 2 then the JPEG will not be
returned as a string, false
on errors.
范例
Example #1 Embedding IPTC data into a JPEG
<?php// iptc_make_tag() function by Thies C. Arntzenfunction iptc_make_tag($rec, $data, $value){ $length = strlen($value); $retval = chr(0x1C) . chr($rec) . chr($data); if($length < 0x8000) { $retval .= chr($length >> 8) . chr($length & 0xFF); } else { $retval .= chr(0x80) . chr(0x04) . chr(($length >> 24) & 0xFF) . chr(($length >> 16) & 0xFF) . chr(($length >> 8) & 0xFF) . chr($length & 0xFF); } return $retval . $value;}// Path to jpeg file$path = './phplogo.jpg';// We need to check if theres any IPTC data in the jpeg image. If there is then // bail out because we cannot embed any image that already has some IPTC data!$image = getimagesize($path, $info);if(isset($info['APP13'])){ die('Error: IPTC data found in source image, cannot continue');}// Set the IPTC tags$iptc = array( '2#120' => 'Test image', '2#116' => 'Copyright 2008-2009, The PHP Group');// Convert the IPTC tags into binary code$data = ;foreach($iptc as $tag => $string){ $tag = substr($tag, 2); $data .= iptc_make_tag(2, $tag, $string);}// Embed the IPTC data$content = iptcembed($data, $path);// Write the new image data out to the file.$fp = fopen($path, "wb");fwrite($fp, $content);fclose($fp);?>
注释
Note:
此函数不需要 GD 图象库。