PHP GD Stronger Antialias - PullRequest
       5

PHP GD Stronger Antialias

2 голосов
/ 16 ноября 2010

Я использую GD для построения нескольких простых диаграмм из данных точек массива. Пытаясь оптимизировать внешний вид - даже используя imageantialias, все еще имеется заметный зазор в линии между точками.Что может быть лучше, чтобы PHP GD сглаживал линию между двумя точками?

Ответы [ 5 ]

0 голосов
/ 24 февраля 2012

извините, кажется, что я против вас (или я это изменил? Кажется, у меня теперь есть значок Критика)

Я использовал какой-то хак, и это выглядит не так уж плохо

http://i42.tinypic.com/72tzes.jpg

http://i42.tinypic.com/290yidi.png

Я просто рисую несколько линий с меньшим цветом за основной линией

$arColor = imagecolorsforindex($im, $color);
$AAcolor = imagecolorallocatealpha($im, $arColor['red'], $arColor['green'], $arColor['blue'], 112);

imageline($im,round($prevX+1),round($prevY),round($x),round($y+1),$AAcolor);
imageline($im,round($prevX),round($prevY-1),round($x+1),round($y),$AAcolor);
imageline($im,round($prevX-1),round($prevY),round($x),round($y-1),$AAcolor);
imageline($im,round($prevX),round($prevY+1),round($x-1),round($y),$AAcolor);
imageline($im,round($prevX),round($prevY),round($x),round($y),$color);
0 голосов
/ 16 ноября 2010

Похоже, что самое простое решение - разархивировать JPGraph (http://jpgraph.net), и использовать классы диаграмм - линии получаются удивительно сглаженными и, смею сказать, довольно!ImageMagick - это сложная задача для установки на серверах CentOS - описанные выше методы увеличения и уменьшения не улучшают сглаживание.)

0 голосов
/ 16 ноября 2010

Как насчет применения imagefilter IMG_FILTER_GAUSSIAN_BLUR, IMG_FILTER_SELECTIVE_BLUR или IMG_FILTER_SMOOTH только на линии?

0 голосов
/ 16 ноября 2010

Возможно, ваша линия сглажена правильно, но вам также необходимо гамма-коррекцию изображения. Я не знаю, облегчает ли это вам GD, но я видел эффект в своем собственном коде рендеринга строк, и соответствующее значение гаммы зависит от используемого вами монитора.

0 голосов
/ 16 ноября 2010

У GD есть ряд ограничений и столько же неловких обходных путей.Я бы предложил вместо этого использовать ImageMagick , чтобы без проблем получить лучшие инструменты для рисования.

...