]> granicus.if.org Git - php/commitdiff
- MFH, PNG compression support exposed
authorPierre Joye <pajoye@php.net>
Fri, 9 Dec 2005 18:07:57 +0000 (18:07 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 9 Dec 2005 18:07:57 +0000 (18:07 +0000)
NEWS
ext/gd/gd.c
ext/gd/gd_ctx.c
ext/gd/tests/pngcomp.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index b19d7784dafd7d273f3173e78a5194a02b5bd091..bca89ff4bb28471c87ebcd37ef7f2f9f4686abfa 100644 (file)
--- 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
index cbd5fd5aad6f2db87da4abe6fc633037ae58e54f..30acee57e60b544036e5b2bbe267802f3adcdacc 100644 (file)
@@ -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
index dfc5237e6c09f9ac07bc695578408fb9378464fd..36a41050f576c9fb6648d66882e22f140e993e38 100644 (file)
@@ -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 (file)
index 0000000..6a4dbbb
--- /dev/null
@@ -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