summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/gd/libgd/gd_gd2.c12
-rw-r--r--ext/gd/libgd/gd_png.c26
2 files changed, 9 insertions, 29 deletions
diff --git a/ext/gd/libgd/gd_gd2.c b/ext/gd/libgd/gd_gd2.c
index eab50ad9df..10156bfb94 100644
--- a/ext/gd/libgd/gd_gd2.c
+++ b/ext/gd/libgd/gd_gd2.c
@@ -25,8 +25,8 @@
/* Use this for commenting out debug-print statements. */
/* Just use the first '#define' to allow all the prints... */
-#define GD2_DBG(s) (s)
-//#define GD2_DBG(s)
+/* #define GD2_DBG(s) (s) */
+#define GD2_DBG(s)
typedef struct
{
@@ -184,7 +184,7 @@ _gd2CreateFromFile (gdIOCtxPtr in, int *sx, int *sy,
goto fail1;
}
- im = gdImageCreate (*sx, *sy);
+ im = gdImageCreateTrueColor(*sx, *sy);
if (im == NULL)
{
GD2_DBG(php_gd_error("Could not create gdImage\n"));
@@ -393,7 +393,7 @@ gdImageCreateFromGd2Ctx (gdIOCtxPtr in)
int r = chunkBuf[chunkPos++] << 16;
int g = chunkBuf[chunkPos++] << 8;
int b = chunkBuf[chunkPos++];
- im->pixels[y][x] = a + r + g + b;
+ im->tpixels[y][x] = a + r + g + b;
}
else
{
@@ -818,10 +818,10 @@ _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt)
{
for (x = xlo; x < xhi; x++)
{
- int p = im->pixels[y][x];
GD2_DBG(php_gd_error("%d...",x));
if (im->trueColor)
{
+ int p = im->tpixels[y][x];
chunkData[chunkLen++] = gdTrueColorGetAlpha (p);
chunkData[chunkLen++] = gdTrueColorGetRed (p);
chunkData[chunkLen++] = gdTrueColorGetGreen (p);
@@ -829,7 +829,7 @@ _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt)
}
else
{
- chunkData[chunkLen++] = p;
+ chunkData[chunkLen++] = im->pixels[y][x];
}
};
}
diff --git a/ext/gd/libgd/gd_png.c b/ext/gd/libgd/gd_png.c
index 4671f83cc0..8d5effb5a2 100644
--- a/ext/gd/libgd/gd_png.c
+++ b/ext/gd/libgd/gd_png.c
@@ -667,20 +667,10 @@ gdImagePngCtx (gdImagePtr im, gdIOCtx * outfile)
/* Our little 7-bit alpha channel trick costs us a bit here. */
png_bytep *row_pointers;
row_pointers = gdMalloc (sizeof (png_bytep) * height);
- if (row_pointers == NULL)
- {
- php_gd_error("gd-png error: unable to allocate row_pointers\n");
- }
for (j = 0; j < height; ++j)
{
int bo = 0;
- if ((row_pointers[j] = (png_bytep) gdMalloc (width * channels)) == NULL)
- {
- php_gd_error("gd-png error: unable to allocate rows\n");
- for (i = 0; i < j; ++i)
- gdFree (row_pointers[i]);
- return;
- }
+ row_pointers[j] = (png_bytep) gdMalloc (width * channels);
for (i = 0; i < width; ++i)
{
unsigned char a;
@@ -714,20 +704,10 @@ gdImagePngCtx (gdImagePtr im, gdIOCtx * outfile)
{
png_bytep *row_pointers;
row_pointers = gdMalloc (sizeof (png_bytep) * height);
- if (row_pointers == NULL)
- {
- php_gd_error("gd-png error: unable to allocate row_pointers\n");
- }
for (j = 0; j < height; ++j)
{
- if ((row_pointers[j] = (png_bytep) gdMalloc (width)) == NULL)
- {
- php_gd_error("gd-png error: unable to allocate rows\n");
- for (i = 0; i < j; ++i)
- gdFree (row_pointers[i]);
- return;
- }
- for (i = 0; i < width; ++i)
+ row_pointers[j] = (png_bytep) gdMalloc (width);
+ for (i = 0; i < width; ++i)
row_pointers[j][i] = mapping[im->pixels[j][i]];
}