Php 用于创建CSS精灵的imagefilter

Php 用于创建CSS精灵的imagefilter,php,gd,imagefilter,Php,Gd,Imagefilter,我想为CSS精灵自动创建图像 我的目标是将彩色缩略图转换为黑白,并将其合并为一个图像,顶部为彩色缩略图,底部为黑色缩略图) 以下是我到目前为止的情况: <?php $image = imagecreatefrompng('test.png'); if($image && imagefilter($image , IMG_FILTER_GRAYSCALE)) { echo 'Image converted.'; imagepng($image, 'test

我想为CSS精灵自动创建图像

我的目标是将彩色缩略图转换为黑白,并将其合并为一个图像,顶部为彩色缩略图,底部为黑色缩略图)

以下是我到目前为止的情况:

<?php
$image = imagecreatefrompng('test.png');

if($image && imagefilter($image , IMG_FILTER_GRAYSCALE))
{
    echo 'Image converted.';

    imagepng($image, 'test.png');
}
else
{
    echo 'Conversion failed.';
}

imagedestroy($image);
?>



我发现了一个bug($image1应该是$output\u image)


我发现了一个bug($image1应该是$output\u image)



您所说的“合并”是什么意思。这是一个混合覆盖,或者这就像使图像的上半部分是彩色版本,而下半部分是黑白版本。还有更多的细节吗?我希望“合并”的图像由彩色(顶部)和黑白(底部)组成。你说的“合并”是什么意思。这是一个混合覆盖,或者这就像使图像的上半部分是彩色版本,而下半部分是黑白版本。还有更多细节吗?我希望“合并”图像由彩色(顶部)和黑白(底部)组成。创建两倍于原始图像高度的新图像,然后将彩色版本复制到顶部,将灰度版本复制到底部,然后用新图像重新保存原始图像文件。我得到:致命错误:调用未定义的函数createimagetruecolor(),我将其更改为ImageCreateTureColor,但转换失败。oops,应改为ImageCreateTureColor()。很抱歉。创建两倍于原始图像高度的新图像,然后将颜色版本复制到顶部,将灰度版本复制到底部,然后使用新图像重新保存原始图像文件。我收到:致命错误:调用未定义的函数createimagetruecolor()我将其更改为ImageCreateTureColor,但转换失败。哦,应该改为ImageCreateTureColor()。很抱歉。或者输入图像,这取决于您希望在顶部显示的图像。我最初打算过滤输入图像。已编辑的文章或输入图像,具体取决于您希望在顶部显示的内容。我最初打算过滤输入图像。编辑文章。
<?php
$image_path = 'test.png';
$input_image = imagecreatefrompng($image_path);
$image_info = getimagesize($image_path);
$output_image = imagecreatetruecolor($image_info[0], $image_info[1] * 2);
imagecopy ($output_image, $input_image, 0, 0, 0, 0, $image_info[0], $image_info[1]);
if(imagefilter($input_image, IMG_FILTER_GRAYSCALE)) {
    echo 'Image converted.';
    imagecopy ($output_image, $input_image, 0, $image_info[1], 0, 0, $image_info[0], $image_info[1]);
    imagepng($output_image, 'test.png');
} else {
    echo 'Conversion failed.';
}
imagedestroy($input_image);
imagedestroy($output_image);
?>
<?php
$image_path = 'test.png';
$input_image = imagecreatefrompng($image_path);
$image_info = getimagesize($image_path);
$output_image = imagecreatetruecolor($image_info[0], $image_info[1] * 2);
imagecopy ($output_image, $input_image, 0, 0, 0, 0, $image_info[0], $image_info[1]);
if($output_image && imagefilter($output_image , IMG_FILTER_GRAYSCALE)) {
    echo 'Image converted.';
    imagecopy ($output_image, $input_image, 0, $image_info[1], 0, 0, $image_info[0], $image_info[1]);
    imagepng($output_image, 'test.png');
} else {
    echo 'Conversion failed.';
}
imagedestroy($input_image);
imagedestroy($output_image);
?>