PHP: düzgün kenarlı daire, resim veya yazı tipi oluşturma?

3 Cevap php

Ben belli bir çevreye çevreler yaratacak bir PHP komut dosyası resim yapıyorum.

Ben kullanılan:

<?php
imagefilledellipse ( $image, $cx, $cy, $w, $h, $color );
?>

ama ürettiği kaba kenarları nefret ediyorum. Yani yapma ya ben çıkışı kullanarak bir daire tipini kullanarak düşünüyordum:

<?php
 imagettftext ( $image, $size, $angle, $x, $y, $color, 'fontfile.ttf', $text );
?>

Yazı pürüzsüz bir kenarı vardır bir daire üretmek böylece. Benim sorunum "yazı tipi boyutu" "yarıçapı boyutunu" maç yapıyor.

Herhangi bir fikir? Ya da belki bir daire üzerinde pürüzsüz bir kenar üretecek bir PHP sınıfı harika olurdu!

Teşekkür ederim.

3 Cevap

Zekice bir fikir, ben böyle!

Ama belki bu PHP sınıf zaten hile yapar: Antialiased filled Arcs/Ellipses for PHP (GD)

Vb pasta grafikler, köşeleri yuvarlatılmış, menü butonları, Bu liste sonsuz: Birçok durumda web sitesi dinamik olarak oluşturulan görüntüleri gerekir. PHP, ya da daha doğrusu GD kütüphanesi, eliptik yay ve elips dolu sağlar, ancak antialiased değildir. Bu nedenle dolu Antialiased eliptik yay veya dolu Antialiased elips işlemek için bir PHP işlevi yazdım (yanı sıra halkalar ..) PHP ile kolayca. Bu dolu yay çizmek artık bir-liner olduğunu.

hızlı ve kirli anti-aliasing için, görüntüyü iki istenen boyut yapmak, sonra aşağı-numune istenilen boyutta.

$circleSize=90;
$canvasSize=100;

$imageX2 = imagecreatetruecolor($canvasSize*2, $canvasSize*2);

$bg = imagecolorallocate($imageX2, 255, 255, 255);

$col_ellipse = imagecolorallocate($imageX2, 204, 0, 0);

imagefilledellipse($imageX2, $canvasSize, $canvasSize, $circleSize*2, $circleSize*2, $col_ellipse);

$imageOut = imagecreatetruecolor($canvasSize, $canvasSize);
imagecopyresampled($imageOut, $imageX2, 0, 0, 0, 0, $canvasSize, $canvasSize, $canvasSize*2, $canvasSize*2);

header("Content-type: image/png");
imagepng($imageOut);

Cairo iyi antialiasing gelmez.