PHP GD图像背景色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP GD图像背景色?相关的知识,希望对你有一定的参考价值。

各位帮我看下 <?php
header("Content_type:image/jpeg");
$img = imagecreatetruecolor(100,30);
$bgcolor = imagecolorallocate($img,255,255,255);
$col = imagecolorallocate($img,233,16,91);
$imagesize="";
for($i=0;$i<4;$i++)
$imagesize.=dechex(rand(0,15));

imagestring($img,5,30,10,$imagesize,$col);
imagejpeg($img);
?> 为什么我的背景颜色不起作用 他还是黑色 谢谢告诉我

参考技术A 因为你用的是imagecreatetruecolor,无论你怎样调背景色都是黑色的,你用imagecreate就可以改变背景色了

如何在php GD中应用旋转功能后去除黑色背景?

【中文标题】如何在php GD中应用旋转功能后去除黑色背景?【英文标题】:How to remove black background after rotation function applied in php GD? 【发布时间】:2012-06-26 00:58:29 【问题描述】:

就我而言,我创建了一个 php 脚本,用于将许多图像合并为单个图像。在合并过程中,我想旋转几张图片。

脚本运行良好。但旋转后的图像显示黑色背景。

我应该去掉黑色背景色。

我正在使用下面的脚本来处理 php 中的旋转功能。 此脚本可以合并三个具有旋转功能的 png 图像。

问题:

在 IE 8 中旋转后,图像周围会出现一些暗线。 背景显示黑色而不是白色

如何解决这些问题。

请修复此脚本问题并发布您的答案。

$im = imagecreatetruecolor(500, 600);

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

$black = imagecolorallocate($im, 000, 000, 000);


$source=imagecreatefrompng("http://cn1.kaboodle.com/img/c/0/0/179/4/AAAADDpe-ZwAAAAAAXlIhA/funny-shirt-pikachu-pokemon-anime-mens-cool-humor-t-shirt.png?v=1313557837000");
$asd=imagerotate($source, 280, 0);
imagecolortransparent($asd, $white);
imageantialias($asd, true);
$insert_x = imagesx($asd); 
$insert_y = imagesy($asd);
imagecopymerge ( $im , $asd , 0 , 0 , 0 , 0 , $insert_x , $insert_y , 100 );


$source1=imagecreatefrompng("http://www.vouchersmate.com/content/images/thumbs/0001595_worlds_best_dad_to_be_t_shirts.png");
$asd1=imagerotate($source1, 180, 0);
imagecolortransparent($asd1, $white);
imageantialias($asd1, true);
$insert_x1 = imagesx($asd1); 
$insert_y1 = imagesy($asd1);
imagecopymerge ( $im , $asd1 , 110 , 55 , 0 , 0 , $insert_x1 , $insert_y1 , 100 );


$source2=imagecreatefrompng("http://goalwa.files.wordpress.com/2011/11/green_shirt.png?w=300&h=300");
$asd2=imagerotate($source2, 320, 0);
imagecolortransparent($asd2, $white);
imageantialias($asd2, true);
$insert_x2 = imagesx($asd2); 
$insert_y2 = imagesy($asd2);
imagecopymerge ( $im , $asd2 , 170 , 90 , 0 , 0 , $insert_x2 , $insert_y2 , 100 );



imagecolortransparent($im, $black);

imageantialias($im, true);

imagealphablending($im, true);
imagesavealpha($im, true);

header('Content-Type: image/png');
imagepng($im);

我正在使用下面的脚本来处理 php 中的旋转功能。 此脚本可以合并三个具有旋转功能的 png 图像。

问题:

在 IE 8 中旋转后,图像周围会出现一些暗线。 背景显示黑色而不是白色

如何解决这些问题。

请修复此脚本问题并发布您的答案。

$im = imagecreatetruecolor(500, 600);

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

$black = imagecolorallocate($im, 000, 000, 000);


$source=imagecreatefrompng("http://cn1.kaboodle.com/img/c/0/0/179/4/AAAADDpe-ZwAAAAAAXlIhA/funny-shirt-pikachu-pokemon-anime-mens-cool-humor-t-shirt.png?v=1313557837000");
$asd=imagerotate($source, 280, 0);
imagecolortransparent($asd, $white);
imageantialias($asd, true);
$insert_x = imagesx($asd); 
$insert_y = imagesy($asd);
imagecopymerge ( $im , $asd , 0 , 0 , 0 , 0 , $insert_x , $insert_y , 100 );


$source1=imagecreatefrompng("http://www.vouchersmate.com/content/images/thumbs/0001595_worlds_best_dad_to_be_t_shirts.png");
$asd1=imagerotate($source1, 180, 0);
imagecolortransparent($asd1, $white);
imageantialias($asd1, true);
$insert_x1 = imagesx($asd1); 
$insert_y1 = imagesy($asd1);
imagecopymerge ( $im , $asd1 , 110 , 55 , 0 , 0 , $insert_x1 , $insert_y1 , 100 );


$source2=imagecreatefrompng("http://goalwa.files.wordpress.com/2011/11/green_shirt.png?w=300&h=300");
$asd2=imagerotate($source2, 320, 0);
imagecolortransparent($asd2, $white);
imageantialias($asd2, true);
$insert_x2 = imagesx($asd2); 
$insert_y2 = imagesy($asd2);
imagecopymerge ( $im , $asd2 , 170 , 90 , 0 , 0 , $insert_x2 , $insert_y2 , 100 );



imagecolortransparent($im, $black);

imageantialias($im, true);

imagealphablending($im, true);
imagesavealpha($im, true);

header('Content-Type: image/png');
imagepng($im);

【问题讨论】:

您好,您可以添加一些代码让我们帮助您定位错误。 【参考方案1】:

没有任何代码可以检查,很难准确定位您的问题,但我会尝试:

你看到的黑色是没有颜色的。您可能想要的是该区域是透明的。尝试添加以下代码:

imagealphablending($im, true);
imagesavealpha($im, true);

【讨论】:

【参考方案2】:

你要寻找的背景是什么?

您可以使用imagefilledrectangle 以您喜欢的任何颜色填充背景。例如,假设您有一个宽度为 500 像素、高度为 250 像素的图像;

$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 500, 250, $white);

您现在可以使用全白背景。也可以看imagecolortransparent; http://php.net/manual/en/function.imagecolortransparent.php 如果您想创建透明背景。

【讨论】:

以上是关于PHP GD图像背景色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中使用 GD 设置透明背景?

R语言ggplot2可视化自定义可视化结果的背景色(background color)实战:改变整个画板(panel)的背景色改变图像(plot)区域的背景色

Python使用matplotlib可视化自定义背景色实战:自定义可视化图像的背景色(Background Color)

matlab仿真图中的背景色怎么改

GIMP 抠图/证件照背景色

如何修改Eclipse代码区背景色