PHP ImageMagick を使用してGD の関数imagefilledarc()
の結果を取得する方法はありますか? 私は周りを見回しましたが、これまでのところ満足のいく解決策は見つかりませんでした。透明度をサポートし、パイの描画に使用したい。
4 に答える
最善の策は、ImageMagick::Drawを使用することです。アークコマンドがあります。中心を指定する代わりに、外接する長方形を指定します。塗りつぶしを設定するには、コマンドを前に追加する必要があります。塗りつぶしを閉じるには、コマンドを追加する必要があります。
私の知る限り、ImagickDraw :: arcがそれを行う唯一の方法です(ピクセルごとに描画する関数を作成したい場合を除く)。ただし、gdと同じように機能させるには、小さな変更を加えるだけです。たとえば、これは次のとおりです。
imagearc($image, $cx, $cy, $width, $height, $start, $end, $color);
これと同等である必要があります(私はそれをテストしていません):
ImagickDraw::setStrokeColor($imageMagickColor); //I don't remember how to allocate the color
ImagickDraw::arc($cx-$width/2, $cy-$height/2, $cx+$width/2, $cy+$height/2, $start, $end);
この投稿はときどき Google 社員にヒットし、有効な回答がないため、いくつかのヒントを提供する必要があると考えました。同じ呼び出しを使用して最も人気のある PHP 画像ライブラリ (ImageMagick、GraphicsMagick、および GD) をサポートするImagine ( https://github.com/avalanche123/Imagine )という優れたライブラリがあります。
API には pieSlice 関数 ( https://imagine.readthedocs.io/en/stable/_static/API/Imagine/Draw/DrawerInterface.html#method_pieSlice ) が含まれています。その関数のソースはhttps://github.com/avalanche123/Imagine/blob/develop/src/Imagick/Drawer.php#L242です