summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gd/libgd/gd.c24
-rw-r--r--ext/gd/libgd/gd_gd2.c2
-rw-r--r--ext/gd/libgd/gdft.c10
3 files changed, 18 insertions, 18 deletions
diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c
index f946b15f71..0794ab5467 100644
--- a/ext/gd/libgd/gd.c
+++ b/ext/gd/libgd/gd.c
@@ -2236,10 +2236,10 @@ void gdImageSkewX (gdImagePtr dst, gdImagePtr src, int uRow, int iOffset, double
for (i = 0; i < src->sx; i++) {
pxlSrc = f (src,i,uRow);
- r = gdImageRed(src,pxlSrc) * dWeight;
- g = gdImageGreen(src,pxlSrc) * dWeight;
- b = gdImageBlue(src,pxlSrc) * dWeight;
- a = gdImageAlpha(src,pxlSrc) * dWeight;
+ r = (int)(gdImageRed(src,pxlSrc) * dWeight);
+ g = (int)(gdImageGreen(src,pxlSrc) * dWeight);
+ b = (int)(gdImageBlue(src,pxlSrc) * dWeight);
+ a = (int)(gdImageAlpha(src,pxlSrc) * dWeight);
pxlLeft = gdImageColorAllocateAlpha(src, r, g, b, a);
@@ -2299,7 +2299,7 @@ void gdImageSkewX (gdImagePtr dst, gdImagePtr src, int uRow, int iOffset, double
void gdImageSkewY (gdImagePtr dst, gdImagePtr src, int uCol, int iOffset, double dWeight, int clrBack)
{
typedef int (*FuncPtr)(gdImagePtr, int, int);
- int i, iYPos, r, g, b, a;
+ int i, iYPos=0, r, g, b, a;
FuncPtr f;
int pxlOldLeft, pxlLeft, pxlSrc;
@@ -2319,10 +2319,10 @@ void gdImageSkewY (gdImagePtr dst, gdImagePtr src, int uCol, int iOffset, double
pxlSrc = f (src, uCol, i);
iYPos = i + iOffset;
- r = gdImageRed(src,pxlSrc) * dWeight;
- g = gdImageGreen(src,pxlSrc) * dWeight;
- b = gdImageBlue(src,pxlSrc) * dWeight;
- a = gdImageAlpha(src,pxlSrc) * dWeight;
+ r = (int)(gdImageRed(src,pxlSrc) * dWeight);
+ g = (int)(gdImageGreen(src,pxlSrc) * dWeight);
+ b = (int)(gdImageBlue(src,pxlSrc) * dWeight);
+ a = (int)(gdImageAlpha(src,pxlSrc) * dWeight);
pxlLeft = gdImageColorAllocateAlpha(src, r, g, b, a);
@@ -2482,7 +2482,7 @@ gdImagePtr gdImageRotate45 (gdImagePtr src, double dAngle, int clrBack)
dSinE = sin (dRadAngle);
dTan = tan (dRadAngle / 2.0);
- newx = src->sx + src->sy * fabs(dTan);
+ newx = (int)(src->sx + src->sy * fabs(dTan));
newy = src->sy;
/* 1st shear */
@@ -2517,7 +2517,7 @@ gdImagePtr gdImageRotate45 (gdImagePtr src, double dAngle, int clrBack)
dShear = ((double)(u - dst1->sy) + 0.5) * dTan;
}
- iShear = floor(dShear);
+ iShear = (int)floor(dShear);
gdImageSkewX(dst1, src, u, iShear, (dShear - iShear), clrBack);
}
@@ -2547,7 +2547,7 @@ gdImagePtr gdImageRotate45 (gdImagePtr src, double dAngle, int clrBack)
}
for (u = 0; u < dst2->sx; u++, dOffset -= dSinE) {
- iShear = floor (dOffset);
+ iShear = (int)floor (dOffset);
gdImageSkewY(dst2, dst1, u, iShear, (dOffset - iShear), clrBack);
}
diff --git a/ext/gd/libgd/gd_gd2.c b/ext/gd/libgd/gd_gd2.c
index 66d98f0915..8fe7051468 100644
--- a/ext/gd/libgd/gd_gd2.c
+++ b/ext/gd/libgd/gd_gd2.c
@@ -763,7 +763,7 @@ _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt)
/* The zlib notes say output buffer size should be (input size) * 1.01 * 12 */
/* - we'll use 1.02 to be paranoid. */
/* */
- compMax = cs * bytesPerPixel * cs * 1.02 + 12;
+ compMax = (int)(cs * bytesPerPixel * cs * 1.02 + 12);
/* */
/* Allocate the buffers. */
diff --git a/ext/gd/libgd/gdft.c b/ext/gd/libgd/gdft.c
index 0a1e145a75..bc39f09c76 100644
--- a/ext/gd/libgd/gdft.c
+++ b/ext/gd/libgd/gdft.c
@@ -854,8 +854,8 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist,
if (ch == '\r')
{
penf.x = 0;
- x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64;
- y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64;
+ x1 = (int)((penf.x * cos_a - penf.y * sin_a + 32.0) / 64.0);
+ y1 = (int)((penf.x * sin_a + penf.y * cos_a + 32.0) / 64.0);
pen.x = pen.y = 0;
previous = 0; /* clear kerning flag */
next++;
@@ -864,10 +864,10 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist,
/* newlines */
if (ch == '\n')
{
- penf.y -= face->size->metrics.height * LINESPACE;
+ penf.y = penf.y - (int)(face->size->metrics.height * LINESPACE);
penf.y = (penf.y - 32) & -64; /* round to next pixel row */
- x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64;
- y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64;
+ x1 = (int)((penf.x * cos_a - penf.y * sin_a + 32.0) / 64.0);
+ y1 = (int)((penf.x * sin_a + penf.y * cos_a + 32.0) / 64.0);
pen.x = pen.y = 0;
previous = 0; /* clear kerning flag */
next++;