Рисование пирогов с помощью PHP ImageMagick - PullRequest
1 голос
/ 27 июня 2009

Есть ли способ получить результат функции GD imagefilledarc() с использованием PHP ImageMagick? Я посмотрел вокруг, но так и не нашел удовлетворительного решения. Я хочу, чтобы он поддерживал прозрачность и использовал его для рисования пирогов.

Ответы [ 4 ]

1 голос
/ 19 июня 2012

Так как этот пост время от времени попадает под влияние Google, и у него нет правильного ответа, я решил дать несколько подсказок. Существует отличная библиотека под названием Imagine (https://github.com/avalanche123/Imagine)), которая поддерживает самые популярные библиотеки изображений PHP (ImageMagick, GraphicsMagick и GD) с использованием тех же вызовов.

Это 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

1 голос
/ 06 июля 2009

Насколько я знаю, 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);
1 голос
/ 15 июля 2009

Не совсем то, что вы спрашивали, но рисовать круговые диаграммы с помощью Google Chart API легко http://code.google.com/apis/chart/

alt text

1 голос
/ 27 июня 2009

Лучше всего было бы использовать ImageMagick :: Draw. У него есть команда дуги; вместо указания центра вы указываете ограничительный прямоугольник. Вам просто нужно добавить команду перед тем, как установить заливку, и, возможно, после нее, чтобы закрыть заливку.

http://us.php.net/manual/en/function.imagickdraw-arc.php

...