1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-01 11:30:16 +02:00

fixed bug: GD circle method does not respect border thickness

This commit is contained in:
Oliver Vogel
2014-11-21 19:29:54 +01:00
parent c06cb80fd1
commit 39c260fb4a

View File

@@ -43,13 +43,20 @@ class EllipseShape extends \Intervention\Image\AbstractShape
*/
public function applyToImage(Image $image, $x = 0, $y = 0)
{
// parse background color
$background = new Color($this->background);
imagefilledellipse($image->getCore(), $x, $y, $this->width, $this->height, $background->getInt());
if ($this->hasBorder()) {
// slightly smaller ellipse to keep 1px bordered edges clean
imagefilledellipse($image->getCore(), $x, $y, $this->width-1, $this->height-1, $background->getInt());
$border_color = new Color($this->border_color);
imagesetthickness($image->getCore(), $this->border_width);
imageellipse($image->getCore(), $x, $y, $this->width, $this->height, $border_color->getInt());
// gd's imageellipse doesn't respect imagesetthickness so i use imagearc with 359.9 degrees here
imagearc($image->getCore(), $x, $y, $this->width, $this->height, 0, 359.99, $border_color->getInt());
} else {
imagefilledellipse($image->getCore(), $x, $y, $this->width, $this->height, $background->getInt());
}
return true;