Как применить фильтр imagefilter в функции?

Рейтинг: -1Ответов: 1Опубликовано: 03.03.2023

Как ни пытался, ничего не выходит. Вот такой у меня код:

public function fileUpload($path)
{
    $fileTmpName = $_FILES['file']['tmp_name'];

    $image = getimagesize($fileTmpName);
    $extension = image_type_to_extension($image[2]);
    $path = 'public/images/uploads/' . uniqid() . $extension;
    
    $params = [
        'id' => null,
        'path' => $path,
    ];

    move_uploaded_file($fileTmpName, $path);

    imagecreatefromjpeg($path);
    imagefilter($path, IMG_FILTER_GRAYSCALE);
    
    $this->db->query('INSERT INTO `files` VALUES (:id, :path, strftime("%d.%m.%Y %H:%M"))', $params);
    return $this->db->getLastInsertId();
}

Прошу помощи!

Ответы

▲ 1

Функция imagefilter() в качестве первого аргумента принимает не путь к картинке, а обьект типа GdImage, созданный другой функцией, например, imagecreatefromjpeg().

$img = imagecreatefromjpeg($path);
imagefilter($img, IMG_FILTER_GRAYSCALE);
imagejpeg($img, $new_path);