gpt4 book ai didi

php - 如何将多个图像和文本合并为一个图像?

转载 作者:可可西里 更新时间:2023-10-31 22:52:38 25 4
gpt4 key购买 nike

我在一个 div 中有多个 PNG 图像,这些图像是 PNG,并根据他/她选择的自定义选项作为单个图像呈现给用户。此外,添加文本也作为其他功能启用,它允许带有文本的 div 添加到这些图像上方。

现在我想生成一个包含多个图像和文本组合的图像,同时保持文本的字体系列和大小。

例如。界面上出现的图像,图像和文字相结合。 (它设法出现在 css 定位中) enter image description here这是由下面的两张图片和文字组成的

![enter image description here enter image description here

这是我尝试拍摄的图像:create-image.php 文件

<?php
createimageinstantly();
function createimageinstantly($img1='',$img2='',$img3=''){
$x=$y=1000;
header('Content-Type: image/png');
$targetFolder = '/gw/media/uploads/processed/';
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;

$img1 = $targetPath.'img1.png';
$img2 = $targetPath.'img2.png';
$img3 = $targetPath.'img3.png';

$outputImage = imagecreatetruecolor(1000, 1000);

$first = imagecreatefrompng($img1);
$second = imagecreatefrompng($img2);
$third = imagecreatefrompng($img3);

imagecopy($outputImage,$first,0,0,0,0, $x, $y);
imagecopy($outputImage,$second,0,0,0,0, $x, $y);
imagecopy($outputImage,$third,0,200,-200,0, $x, $y);

imagepng($outputImage, $targetPath .round(microtime(true) * 1000).'.png');

imagedestroy($outputImage);
}
?>

但这给了我全黑的图像 ![enter image description here

此外,我需要在最终生成的图像上与文本混合

已编辑:

  • jpg图片转为png

  • imagecopymege 改为 imagecopy

最新结果:

       <?php
createimageinstantly();
//$targetFolder = '/gw/media/uploads/processed/';
//$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
//$img3 = $targetPath.'img3.png';
//print_r(getimagesize('http://www.vapor-rage.com/wp-content/uploads/2014/05/sample.jpg'));
function createimageinstantly($img1='',$img2='',$img3=''){
$x=$y=600;
header('Content-Type: image/png');
$targetFolder = '/gw/media/uploads/processed/';
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;

$img1 = $targetPath.'img1.png';
$img2 = $targetPath.'img2.png';
$img3 = $targetPath.'img3.png';

$outputImage = imagecreatetruecolor(600, 600);

// set background to white
$white = imagecolorallocate($outputImage, 255, 255, 255);
imagefill($outputImage, 0, 0, $white);

$first = imagecreatefrompng($img1);
$second = imagecreatefrompng($img2);
$third = imagecreatefrompng($img3);

//imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopyresized($outputImage,$first,0,0,0,0, $x, $y,$x,$y);
imagecopyresized($outputImage,$second,0,0,0,0, $x, $y,$x,$y);
imagecopyresized($outputImage,$third,200,200,0,0, 100, 100, 204, 148);

imagepng($outputImage, $targetPath .round(microtime(true)).'.png');

imagedestroy($outputImage);
}
?>

和输出图像 enter image description here

最佳答案

我是这样实现的,

使用了这3张图片,img1.png,img2.png,img3.png

enter image description here enter image description here enter image description here

create-image.php文件

 <?php
createimageinstantly();
//$targetFolder = '/gw/media/uploads/processed/';
//$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
//$img3 = $targetPath.'img3.png';
//print_r(getimagesize('http://www.vapor-rage.com/wp-content/uploads/2014/05/sample.jpg'));
function createimageinstantly($img1='',$img2='',$img3=''){
$x=$y=600;
header('Content-Type: image/png');
$targetFolder = '/gw/media/uploads/processed/';
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;

$img1 = $targetPath.'img1.png';
$img2 = $targetPath.'img2.png';
$img3 = $targetPath.'img3.png';

$outputImage = imagecreatetruecolor(600, 600);

// set background to white
$white = imagecolorallocate($outputImage, 255, 255, 255);
imagefill($outputImage, 0, 0, $white);

$first = imagecreatefrompng($img1);
$second = imagecreatefrompng($img2);
$third = imagecreatefrompng($img3);

//imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopyresized($outputImage,$first,0,0,0,0, $x, $y,$x,$y);
imagecopyresized($outputImage,$second,0,0,0,0, $x, $y,$x,$y);
imagecopyresized($outputImage,$third,200,200,0,0, 100, 100, 204, 148);

// Add the text
//imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
//$white = imagecolorallocate($im, 255, 255, 255);
$text = 'School Name Here';
$font = 'OldeEnglish.ttf';
imagettftext($outputImage, 32, 0, 150, 150, $white, $font, $text);

$filename =$targetPath .round(microtime(true)).'.png';
imagepng($outputImage, $filename);

imagedestroy($outputImage);
}
?>

结果图像是 enter image description here

引用:imagecopyresized & imagettftext

感谢您通过评论/回答提出的建议。我还详细地写了博客 http://sumankc.com/2016/01/30/merge-multiple-images-and-text-to-create-single-image-php-gd-library/美好的一天!!

关于php - 如何将多个图像和文本合并为一个图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com