summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Joye <pajoye@php.net>2005-12-09 18:07:57 +0000
committerPierre Joye <pajoye@php.net>2005-12-09 18:07:57 +0000
commitce90a27a48c2fe20c59505f288a38ad4b0ae3b10 (patch)
tree1310266acd4fb7053c97042855946ecd6949658b
parent5461b5a6b11bd13bb04f324b24440201d3cd6cd5 (diff)
downloadphp-git-ce90a27a48c2fe20c59505f288a38ad4b0ae3b10.tar.gz
- MFH, PNG compression support exposed
-rw-r--r--NEWS1
-rw-r--r--ext/gd/gd.c2
-rw-r--r--ext/gd/gd_ctx.c1
-rw-r--r--ext/gd/tests/pngcomp.phpt37
4 files changed, 40 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index b19d7784da..bca89ff4bb 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 200?, PHP 5.1.2
+- Addes PNG compression support (Pierre)
- Added new extensions: (Ilia, Wez)
. XMLWriter
. Hash
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index cbd5fd5aad..30acee57e6 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -1871,7 +1871,7 @@ PHP_FUNCTION(imagegif)
PHP_FUNCTION(imagepng)
{
#ifdef USE_GD_IOCTX
- _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG", gdImagePngCtx);
+ _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG", gdImagePngCtxEx);
#else
_php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG", gdImagePng);
#endif
diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c
index dfc5237e6c..36a41050f5 100644
--- a/ext/gd/gd_ctx.c
+++ b/ext/gd/gd_ctx.c
@@ -115,6 +115,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid threshold value '%d'. It must be between 0 and 255", q);
}
case PHP_GDIMG_TYPE_JPG:
+ case PHP_GDIMG_TYPE_PNG:
(*func_p)(im, ctx, q);
break;
case PHP_GDIMG_TYPE_XBM:
diff --git a/ext/gd/tests/pngcomp.phpt b/ext/gd/tests/pngcomp.phpt
new file mode 100644
index 0000000000..6a4dbbb6c0
--- /dev/null
+++ b/ext/gd/tests/pngcomp.phpt
@@ -0,0 +1,37 @@
+--TEST--
+png compression test
+--SKIPIF--
+<?php
+ if (!extension_loaded('gd')) {
+ die("skip gd extension not available.");
+ }
+ if (!GD_BUNDLED) {
+ die("skip external GD libraries always fail");
+ }
+ if (!function_exists("imagecreatefrompng") || !function_exists("imagepng")) {
+ die("skip png support unavailable");
+ }
+ if (!function_exists("imagecreatefromjpeg") || !function_exists("imagejpeg")) {
+ die("skip jpeg support unavailable");
+ }
+?>
+--FILE--
+<?php
+ $cwd = dirname(__FILE__);
+
+ echo "PNG compression test: ";
+
+ $im = imagecreatetruecolor(20,20);
+ imagefilledrectangle($im, 5,5, 10,10, 0xffffff);
+ imagepng($im, $cwd . '/test_pngcomp.png', 9);
+
+ $im2 = imagecreatefrompng($cwd . '/test_pngcomp.png');
+ $col = imagecolorat($im2, 8,8);
+ if ($col == 0xffffff) {
+ echo "ok\n";
+ }
+
+ @unlink($cwd . "/test_pngcomp.png");
+?>
+--EXPECT--
+PNG compression test: ok