Intereting Posts
Невозможно включить файлы php, используя include Платежи PayPal нескольким получателям. Адаптивные платежи? получить все предметы категории и ее ребенка Мой IP-адрес неправильно отображается на домашнем сервере PHP Определение, если переменная является допустимым закрытием в PHP Как правильно вернуть массив в ajax-вызов в php? Страница невыполнения LARAVEL не загружается – Ошибка 324 – ERR_EMPTY_RESPONSE правильные методы шифрования PHP mcrypt? Debug PDO mySql вставляет NULL в базу данных вместо пустой Извлечь весь контент (включая HTML) из класса div с помощью PHP Как получить подстроку между двумя строками в PHP? Выполните PHP-скрипт на той же странице после выбора раскрывающегося списка с использованием Ajax или JavaScript Поле Symfony2 EWZ Recaptcha неверно проверяет Ненавязчивая функция самостоятельных комментариев для размещения на существующих веб-страницах HowTo PHPUnit assertFunction

Как использовать PHP GD для создания 1 бит растровых изображений (только черный и белый, без серых)

Моя цель

У меня есть PNG. В настоящее время он имеет сглаживание, или, другими словами, оттенки серого. Я хочу, чтобы изображение было 1 бит, или, другими словами, только с использованием цветов черного и белого. Моя цель – сделать это с помощью PHP GD. Я должен сделать это с существующим изображением и не могу создать изображение с нуля, используя imagecreatetruru.

Что я пытаюсь

Функция, которую я нашел, которая лучше всего подходит для работы, – imagetrucolortopalette http://php.net/manual/en/function.imagetruecolortopalette.php

Вот простая версия того, что я пытаюсь сделать

$user_design = base64_decode($_POST['input']); $design_file = fopen('path/filename.png', 'w') or die("Unable to open file!"); imagetruecolortopalette($design_file, false, 1); fwrite($design_file, $user_design); fclose($design_file); 

При этом ключевая строка. 1 является «максимальным количеством цветов, которое должно сохраняться в палитре».

 imagetruecolortopalette($design_file, false, 1); 

Поведение, которое я получаю

Изображение отображается без изменений. Я не уверен, правильно ли использую PHP GD, или если эта функция не делает то, что я думаю, что она делает.

Другие идеи

Они также кажутся многообещающими.

imagecolordeallocate кажется, что я могу использовать его для освобождения цветов, но не уверен, как это сделать, не называя его 254 раза.

http://php.net/manual/en/function.imagecolordeallocate.php

imagecolorset кажется, что я могу использовать его для установки палитры, но я не уверен, как это сделать для существующих изображений.

http://php.net/manual/en/function.imagecolorset.php

В основном я подозреваю, что imagetrucolortopallette – лучший выбор, но любые идеи приветствуются.