]> granicus.if.org Git - php/commitdiff
fix #41442 (imagegd2() under output control)
authorAntony Dovgal <tony2001@php.net>
Tue, 22 May 2007 09:44:55 +0000 (09:44 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 22 May 2007 09:44:55 +0000 (09:44 +0000)
ext/gd/gd.c
ext/gd/tests/bug41442.phpt [new file with mode: 0644]

index 464951b714e5b24804607106fdea455373dea7f2..0b1d29edecdd032a447a2a89c3f958d72d658747 100644 (file)
@@ -2563,6 +2563,14 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
                        }
                        (*func_p)(im, fp);
                        break;
+#ifdef HAVE_GD_GD2
+               case PHP_GDIMG_TYPE_GD2:
+                       if (quality == -1) {
+                               quality = 128;
+                       }
+                       (*func_p)(im, fp, quality, type);
+                       break;
+#endif
                default:
                        if (quality == -1) {
                                quality = 128;
diff --git a/ext/gd/tests/bug41442.phpt b/ext/gd/tests/bug41442.phpt
new file mode 100644 (file)
index 0000000..78a61be
--- /dev/null
@@ -0,0 +1,37 @@
+--TEST--
+Bug #41442 (imagegd2() under output control)
+--SKIPIF--
+<?php 
+       if (!extension_loaded('gd')) {
+               die("skip gd extension not available.");
+       }
+       if (!function_exists("imagegd2")) {
+               die("skip GD2 support unavailable");
+       }
+?>
+--FILE--
+<?php
+
+$str = file_get_contents(dirname(__FILE__).'/src.gd2');
+$res = imagecreatefromstring($str);
+
+/* string */
+ob_start();
+imagegd2($res);
+$str2 = ob_get_clean();
+var_dump(imagecreatefromstring($str2));
+
+/* file */
+$file = dirname(__FILE__)."/bug41442.gd2";
+imagegd2($res, $file);
+$str2 = file_get_contents($file);
+var_dump(imagecreatefromstring($str2));
+
+@unlink($file);
+
+echo "Done\n";
+?>
+--EXPECTF--    
+resource(%d) of type (gd)
+resource(%d) of type (gd)
+Done