iptcembed 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中

发表日期:2021-07-01 08:56:02 | 来源: | | 浏览(420) 分类:GD 和图像处理 函数

iptcembed

(PHP 4, PHP 5, PHP 7, PHP 8)

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.

范例

示例 #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);
?>

注释

注意:

此函数不需要 GD 图象库。

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。