Можно ли и как заполнить поля изображений JPG/JPEG
Как заполнить через wordpress на автопилоте свойства файла (exif, IPTC)??
как читать exif - статья есть (и в интернете есть) как править ещё не видел
мой код заканчивается формированием изображения, на форумах указано что после можно дописить данные (автор и комментарии и метки к IPTC)
imagejpeg($bg,$newPath, $this->settings["general"]["jpg_quality_only"]); // записываем imagejpeg(размер,путь,качество)
// код из инструкции
$fullFilePath='photo1.jpg';
$fullPathThumb = 'photo1thumb.jpg';
$imagesize = getImageSize($fullFilePath, $info);
if(isset($info['APP13'])){
$content = iptcembed($info['APP13'], $fullPathThumb);
@unlink($fullPathThumb);
$fw = fopen($fullPathThumb, 'w');
fwrite($fw, $content);
fclose($fw);
}
// как через него заполнить: комментарии, ключевые слова, и прочее ?

Врезаемся в функцию обработки изображения, получаем путь, переписываем данные
к примеру в
add_filter( 'wp_generate_attachment_metadata', 'filter_function_name_2685', 10, 3 ); function filter_function_name_2685( $image_meta, $attachment_id, $string ){ // filter... /* Source: https://www.php.net/manual/en/function.iptcembed.php */ // iptc_make_tag() функция от Thies C. Arntzen function 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; } // Путь к jpeg файлу $path = ' получаем из $image_meta (серверный) '; // установка IPTC тэгов $iptc = array( '2#120' => 'Тестовое изображение', '2#116' => 'Copyright 2008-2009, The PHP Group' ); // Преобразование IPTC тэгов в двоичный код $data = ''; foreach($iptc as $tag => $string) { $tag = substr($tag, 2); $data .= iptc_make_tag(2, $tag, $string); } // Встраивание IPTC данных $content = iptcembed($data, $path); // запись нового изображения в файл $fp = fopen($path, "wb"); fwrite($fp, $content); fclose($fp); return $image_meta; }