Я хочу сделать следующее в PHP:
У меня есть два изображения: jpg и png. Я хочу изменить размер jpg на тот же размер, что и png, а затем поставить png сверху. PNG имеет прозрачность, поэтому я хотел бы сохранить это, поэтому jpg показывает снизу.
Если бы кто-нибудь мог помочь, это было бы здорово!
благодаря
<? $png = imagecreatefrompng('./mark.png'); $jpeg = imagecreatefromjpeg('./image.jpg'); list($width, $height) = getimagesize('./image.jpg'); list($newwidth, $newheight) = getimagesize('./mark.png'); $out = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($out, $jpeg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagecopyresampled($out, $png, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight); imagejpeg($out, 'out.jpg', 100); ?>
Это рабочий код, который я использую
$dest = imagecreatefrompng('mapCanvas.png'); $src = imagecreatefromjpeg('si.jpg'); imagealphablending($dest, false); imagesavealpha($dest, true); // Copy and merge imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100); // Output and free from memory header('Content-Type: image/png'); imagepng($dest); imagedestroy($dest); imagedestroy($src);
Вот ссылка на пример, который накладывает прозрачный водяной знак на изображение. Мог бы быть вашим прецедентом, может быть связано.
http://www.php.net/manual/en/image.examples.merged-watermark.php
Существует также способ загрузки изображений в формате JPG, изменения размера изображений, включения альфа-отслеживания и экспорта изображений в GD.
Иаков