透明叠加创建PNG
Posted
技术标签:
【中文标题】透明叠加创建PNG【英文标题】:Transparent Overlay Creating PNG 【发布时间】:2015-09-30 12:47:25 【问题描述】:我有下面的功能,我已经得到了我需要的大小,现在我正在添加背景图像,然后希望在所有覆盖文本上添加具有透明背景的文本覆盖,但 imagefilledrectangle
适用变量$white
是预期的,我试图看看是否有任何方法告诉函数是透明的而不是接受颜色,在这种情况下为白色,php 文档说颜色是@的必需参数987654323@,任何建议都非常感谢。
背景图片是本地图片:
define("BACKGROUND_FILE", "background.png");
功能:
public function generateImage()
if (file_exists(BACKGROUND_FILE))
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im)
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 115, 150, 195);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
else
echo 'Error';
我尝试在imagefilledrectangle
之前添加imagecolortransparent($im, $white);
,但没有任何区别。
【问题讨论】:
【参考方案1】:想通了,函数中不需要imagefilledrectangle
行,下面给出了透明的覆盖文本元素,因为现在没有应用填充。
public function generateImage()
if (file_exists(BACKGROUND_FILE))
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im)
$black = imagecolorallocate($im, 115, 150, 195);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
else
echo 'Error';
【讨论】:
以上是关于透明叠加创建PNG的主要内容,如果未能解决你的问题,请参考以下文章
使用 ImageMagick/convert 创建半透明 PNG