WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Можно ли и как заполнить поля изображений 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); 
} 
// как через него заполнить: комментарии, ключевые слова, и прочее ?
Заметки к вопросу:
kolshix 1 месяц назад

Врезаемся в функцию обработки изображения, получаем путь, переписываем данные

к примеру в

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;
}
0
kolshix
3.7 лет назад 682

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация