Skip to content

Commit 5ae6f58

Browse files
committed
fix regression, take #2 (merge issue due to git 1.8 default setting changes)
1 parent c6e911e commit 5ae6f58

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

ext/gd/gd.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -2263,7 +2263,7 @@ PHP_FUNCTION(imagerotate)
22632263

22642264
ZEND_FETCH_RESOURCE(im_src, gdImagePtr, &SIM, -1, "Image", le_gd);
22652265

2266-
im_dst = gdImageRotateGeneric(im_src, (float)degrees, color);
2266+
im_dst = gdImageRotateInterpolated(im_src, (float)degrees, color);
22672267

22682268
if (im_dst != NULL) {
22692269
ZEND_REGISTER_RESOURCE(return_value, im_dst, le_gd);

ext/gd/libgd/gd.h

+1
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,7 @@ gdImagePtr gdImageRotate180(gdImagePtr src, int ignoretransparent);
690690
gdImagePtr gdImageRotate270(gdImagePtr src, int ignoretransparent);
691691
gdImagePtr gdImageRotate45(gdImagePtr src, double dAngle, int clrBack, int ignoretransparent);
692692
gdImagePtr gdImageRotate (gdImagePtr src, double dAngle, int clrBack, int ignoretransparent);
693+
gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, int bgcolor);
693694

694695
void gdImageSetBrush(gdImagePtr im, gdImagePtr brush);
695696
void gdImageSetTile(gdImagePtr im, gdImagePtr tile);

ext/gd/libgd/gd_interpolation.c

+4
Original file line numberDiff line numberDiff line change
@@ -2166,6 +2166,10 @@ gdImagePtr gdImageRotateBicubicFixed(gdImagePtr src, const float degrees, const
21662166
gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, int bgcolor)
21672167
{
21682168
const int angle_rounded = (int)floor(angle * 100);
2169+
2170+
if (bgcolor < 0) {
2171+
return NULL;
2172+
}
21692173

21702174
/* no interpolation needed here */
21712175
switch (angle_rounded) {

0 commit comments

Comments
 (0)