При наложении одного пикселя на картинку соблюдается некоторая его прозрачность. Как ее убрать? Библиотека GD2. Функция imageAlphaBlending($image, false) не помогает, или я ее не так подключаю.
Делаю так:
$image = imageCreateFromJPEG("1.jpg");
imageAlphaBlending($image, false);
$white = imagecolorallocate($image, 255, 255, 255);
imagesetpixel($image, 100, 200, $white);
imageJPEG($image, "new_1.jpg", 100);
imageDestroy($image);
В итоге пиксель не белый на 100% (255, 255, 255) и даже немного закрашиваются (легкий оттенок белого) соседние пиксели (а нужно идеально на 100%), он имеет небольшой оттенок цвета под ним (проверял в фотошопе пипеткой). В чем проблема?
Спустя 23 минуты, 34 секунды (3.05.2010 - 18:55) vasa_c написал(а):
Цитата |
Алгоритм JPEG является алгоритмом сжатия данных с потерями. |
Используйте другой формат.
Спустя 3 часа, 6 минут, 28 секунд (3.05.2010 - 22:02) sNICkerssss написал(а):
Нет, нужен именно JPEG.
Спустя 54 минуты, 34 секунды (3.05.2010 - 22:56) sergeiss написал(а):
Если ты сохранишь в формате, например, PNG, то таких проблем не будет. А с JPG по-любому будут искажения. По той простой причине, что (как тебе уже в этой теме ответили) этот формат при сжатии теряет часть информации, происходит смешивание цветов. И твой белый пискель становится не совсем белым.
GD2 отрабатывает корректно. А вот при записи происходит это самое смешивание.
И понятние "прозрачность" тут вовсе не годится.
GD2 отрабатывает корректно. А вот при записи происходит это самое смешивание.
И понятние "прозрачность" тут вовсе не годится.
Спустя 2 часа, 49 минут, 10 секунд (4.05.2010 - 01:46) sNICkerssss написал(а):
Спасибо за ответы. Тема закрыта.