png图像复制到另一个php图像
我正在尝试将一个png图像添加到另一个图像上。我唯一的问题是png图像在周围创建了一个透明的背景,而不是另一个图像的背景 图为: 预期结果: 代码如下:png图像复制到另一个php图像,php,image,png,Php,Image,Png,我正在尝试将一个png图像添加到另一个图像上。我唯一的问题是png图像在周围创建了一个透明的背景,而不是另一个图像的背景 图为: 预期结果: 代码如下: <?php $img_name = "image_" . date("U") . ".png"; $whoareyou_src = imagecreatefrompng('who-are-you.png'); create_image($img_name, $whoareyou_src); print
<?php
$img_name = "image_" . date("U") . ".png";
$whoareyou_src = imagecreatefrompng('who-are-you.png');
create_image($img_name, $whoareyou_src);
print "<img src=". $img_name .">";
function create_image($img_name, $whoareyou_src) {
$im = @imagecreate(800, 610) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 128, 128); // teal
// imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
$success = imagecopy($im, $whoareyou_src, 0, 0, 0, 0, imagesx($whoareyou_src), imagesy($whoareyou_src));
echo "Image Copy: " . $success . "<br>"; // testing
imagepng($im, $img_name);
imagedestroy($im);
imagedestroy($whoareyou_src);
}
?>
但这并没有改变任何事情
更新
尝试使用imagecopyresampled
和alpha
设置,但结果仍然相同:
<?php
$img_name = "image_" . date("U") . ".png";
$whoareyou_src = imagecreatefrompng('who-are-you.png');
create_image($img_name, $whoareyou_src);
print "<img src=". $img_name .">";
function create_image($img_name, $whoareyou_src) {
$im = @imagecreate(800, 610) or die("Cannot Initialize new GD image stream");
imagealphablending($im, false);
imagesavealpha($im,true);
$background_color = imagecolorallocate($im, 0, 128, 128); // teal
$success = imagecopyresampled($im, $whoareyou_src, 0, 0, 0, 0, imagesx($whoareyou_src), imagesy($whoareyou_src), imagesx($whoareyou_src), imagesy($whoareyou_src));
echo "Image Copy: " . $success . "<br>";
imagepng($im, $img_name);
imagedestroy($im);
imagedestroy($whoareyou_src);
}
?>
试试这样的方法。。。
create_image($img_name, $whoareyou_src);
print "<img src=". $img_name .">";
function create_image($img_name, $whoareyou_src) {
$im = @imagecreatetruecolor(800, 610) or die("Cannot Initialize new GD image stream");
imagealphablending($im, false);
imagesavealpha($im,true);
$background_color = imagecolorallocate($im, 0, 128, 128); // teal
// imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
$success = imagecopyresampled($im, $whoareyou_src, 0, 0, 0, 0, imagesx($whoareyou_src), imagesy($whoareyou_src));
echo "Image Copy: " . $success . "<br>"; // testing
imagepng($im, $img_name);
imagedestroy($im);
imagedestroy($whoareyou_src);
}
create_image($img_name,$whoareyou_src);
打印“”;
函数create\u image($img\u name,$whoareyou\u src){
$im=@imagecreatetruecolor(800610)或die(“无法初始化新的GD图像流”);
ImageAlphabling($im,false);
imagesavealpha($im,true);
$background_color=imagecolorallocate($im,0,128,128);//teal
//imagecopy(资源$dst_im、资源$src_im、int$dst_x、int$dst_y、int$src_x、int$src_y、int$src_w、int$src_h)
$success=imagecopyresampled($im,$whoareyou_src,0,0,0,imagesx($whoareyou_src),imagesy($whoareyou_src));
echo“映像复制:”.$success.
“;//测试
imagepng($im,$img_名称);
图像处理(港币);;
图像销毁($whoareyou\u src);
}
?>这应该可以做到:
<?php
$img_name = "image_" . date("U") . ".png";
$whoareyou_src = imagecreatefrompng('who-are-you.png');
create_image($img_name, $whoareyou_src);
print "<img src=". $img_name .">";
function create_image($img_name, $whoareyou_src) {
$im = @imagecreatetruecolor(800, 610) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 128, 128); // teal
imagefilledrectangle($im, 0, 0, 800, 610, $background_color);
// imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
$success = imagecopy($im, $whoareyou_src, 0, 0, 0, 0, imagesx($whoareyou_src), imagesy($whoareyou_src));
echo "Image Copy: " . $success . "<br>"; // testing
imagepng($im, $img_name);
imagedestroy($im);
imagedestroy($whoareyou_src);
}
?>
您的描述不清楚,您想要透明背景还是蓝绿色背景?您是否尝试过使用imagefill
用您的颜色预先填充背景图像?我想要的是蓝绿色背景。使用imagefill
时的结果相同。实际上,我刚刚尝试过,但结果相同。我将更新我的问题。我刚刚注意到您添加了imagecreatetruecolor
!我没有说我的错。
<?php
$img_name = "image_" . date("U") . ".png";
$whoareyou_src = imagecreatefrompng('who-are-you.png');
create_image($img_name, $whoareyou_src);
print "<img src=". $img_name .">";
function create_image($img_name, $whoareyou_src) {
$im = @imagecreatetruecolor(800, 610) or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 128, 128); // teal
imagefilledrectangle($im, 0, 0, 800, 610, $background_color);
// imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
$success = imagecopy($im, $whoareyou_src, 0, 0, 0, 0, imagesx($whoareyou_src), imagesy($whoareyou_src));
echo "Image Copy: " . $success . "<br>"; // testing
imagepng($im, $img_name);
imagedestroy($im);
imagedestroy($whoareyou_src);
}
?>