ImageFilter لإنشاء العفاريت CSS
-
30-09-2019 - |
سؤال
أرغب في أتمتة إنشاء صور لـ 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);
?>
لا تنتمي إلى StackOverflow