php copy 图片_PHP-imagecopy黑色背景

在尝试使用PHP GD库将两个预生成的图像并排放置时,作者遇到了图像间有黑色背景的问题。通过调整`imagecopy`函数的参数,将 `$maxWidth` 和 `$maxHeight` 替换为图像的实际大小,问题得到了解决。解决方案是正确获取每个图像的大小,并使用这些尺寸进行复制操作,避免了背景颜色错误的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我搜索并尝试了所有发现的方法,但是我无法管理.

我正在尝试做的是:将两个预生成的(带有php gd)图像并排放置,它们之间有一个空格.

我用以下几行创建这两个图像:

$sideMask = imagecreatefrompng($maskFile);

imagealphablending($sideMask, false);

imagesavealpha($sideMask, true);

$image_blank = imagecreatetruecolor($newWidth,$newHeight);

$white = imagecolorallocate($image_blank, 255, 255, 255);

imagefill($image_blank, 0, 0, $white);

imagecopy($image_blank, $ResizedSourceFile, 0, 0, 0, 0, $newWidth, $newHeight);

imagecopy($image_blank, $sideMask, $maskX, 0, 0, 0, $maskWidth, $maskHeight);

$image_blank_mask = imagecreatetruecolor($maskWidth,$maskHeight);

imagecopy($image_blank_mask, $image_blank, 0, 0, $maskX, 0, $maskWidth, $maskHeight);

return $image_blank_mask;

并尝试将它们与这些结合:

$maxHeight = 1626;

$sideSpace = 35;

$maxWidth = 1522 + $sideSpace;

$Img01 = $Img01Created;

$Img02 = $Img02Created;

$BothSideBlank = imagecreatetruecolor($maxWidth,$maxHeight);

$white = imagecolorallocate($BothSideBlank, 255, 255, 255);

imagefill($BothSideBlank, 0, 0, $white);

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $maxWidth, $maxHeight);

imagecopy($BothSideBlank, $Img02, (763+$sideSpace), 0, 0, 0, $maxWidth, $maxHeight);

imagejpeg($BothSideBlank, "Test.jpg",100);

使用此代码,图像之间会出现黑色背景.图像背景的右侧实际上是黑色的.如果我删除

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $maxWidth, $maxHeight);

如我所料,这条线的背景是白色的.但是,如果我删除另一行并添加此行.背景是黑色的.

我已经尝试了所有方法,但是无法成功.

我想念什么吗?

可能是因为生成这些图像吗?

任何帮助将不胜感激.

谢谢.

解决方法:

使用正确的大小代替“ imagecopy”中的“ $maxWidth”和“ $maxHeight”.

$size01 = getimagesize($Img01);

$size02 = getimagesize($Img02);

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $size01[0], $size01[1]);

imagecopy($BothSideBlank, $Img02, ($size01[0]+$sideSpace), 0, 0, 0, $size02[0], $size02[1]);

标签:gd,php

来源: https://codeday.me/bug/20191122/2061324.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值