我想自动为CSS Sprites创建图像。

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

这是我到目前为止所拥有的:

<?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);
?>
有帮助吗?

解决方案

<?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);
?>

其他提示

我发现一个错误($ image1应该是$ 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);
?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top