Вопрос

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

Это было полезно?

Решение 4

Поскольку этот пост время от времени попадает в руки гуглеров и на него нет достоверного ответа, я решил дать несколько подсказок.Есть отличная библиотека Imagine(https://github.com/avalanche123/Представьте себе), который поддерживает самые популярные библиотеки изображений 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

Другие советы

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

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

Насколько я знаю, 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 Chart API легко рисовать круговые диаграммы. http://code.google.com/apis/chart/

alt text

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top