С помощью функций PHP GD, как я могу создать эллипс, который сглаживается и имеет прозрачный фон (PNG24 с альфа-каналом)? - PullRequest
1 голос
/ 11 марта 2010

Я могу нарисовать круг на прозрачном фоне, но по краям он пикселирован.

Я также могу получить сглаженный круг на непрозрачном фоне с http://mierendo.com/software/antialiased_arcs/.

Итак, как мне получить оба?

1 Ответ

0 голосов
/ 12 марта 2010

Проблема с прозрачными изображениями заключается в том, что полупрозрачные пиксели на границе будут частично окрашены в цвет, который вы указали в качестве прозрачного цвета. Если вы можете жить с этим, то можете использовать указанную вами библиотеку сглаженных дуг, простопоместите следующее в начало их примера (я использовал оптимизированную версию):

include ("./imageSmoothArc_optimized.php");

$img = imageCreateTrueColor( 648, 800 );
imagealphablending($img,true);
$color = imageColorAllocate( $img, 255, 255, 255);
$transparent_color = imageColorAllocate( $img, 0, 0, 0);
imagefill( $img, 5, 5, $transparent_color );
imagecolortransparent($img, $transparent_color);

Это даст вам прозрачное изображение PNG.Поскольку в качестве прозрачного цвета я указал черный, у края кружки станут черными, и вы сможете использовать их только на темном фоне.

...