|
| 1 | +--TEST-- |
| 2 | +Bug #66005 (imagecopy does not support 1bit transparency on truecolor images) |
| 3 | +--SKIPIF-- |
| 4 | +<?php |
| 5 | +if (!extension_loaded('gd')) die('skip gd extension not available'); |
| 6 | +?> |
| 7 | +--FILE-- |
| 8 | +<?php |
| 9 | +$dest = imagecreatetruecolor(150, 50); |
| 10 | +$transparent = imagecolorallocatealpha($dest, 255, 255, 255, 127); |
| 11 | +imagealphablending($dest, false); |
| 12 | +imagefill($dest, 1, 1, $transparent); |
| 13 | +imagesavealpha($dest, true); |
| 14 | + |
| 15 | +// Palette image with transparent color |
| 16 | +$png_palette = imagecreatefromstring(base64_decode('iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEUAAAD/AAD///9nGWQeAAAAAXRSTlMAQObYZgAAAEFJREFUKM9jYBimIASZIxoagOAwhoaGInisQJ4DksJQJKWoPCAnNIQYHsgChBX4eMSbiddlqH5A9R+q39HCZWgDAFxFGyOrmguhAAAAAElFTkSuQmCCPHP')); |
| 17 | + |
| 18 | +// 24 bit with transparent color |
| 19 | +$png_24 = imagecreatefromstring(base64_decode('iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAABnRSTlMAAAAAAABupgeRAAAAVklEQVRYw+3UQQqAMBAEwf3/p9eTBxEPiWAmWMU8oGFJqgAAuOpzWTX3xQUti+uRJTZ9V5aY1bOTFZLV7yZr9zt6ibv/qPXfrMpsGipbIy7oqQ8AYJED1plDy5PCu2sAAAAASUVORK5CYII=')); |
| 20 | + |
| 21 | +// 32 bit with full alpha channel |
| 22 | +$png_full = imagecreatefromstring(base64_decode('iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAXklEQVRo3u3XMQrAIBBFwb3/pU2VwiJNIvjdzMD2PlBwqwAAAGajatxz9OGf5viA+KA3EXExXyKiYlqErIiIiBGSFLIyYmuMkO7Xy2MX4ovS/ONoH7Eh/m1nBwCASBe3VYeVaAy8PwAAAABJRU5ErkJggg==')); |
| 23 | + |
| 24 | +imagecopy($dest, $png_palette, 0, 0, 0, 0, 50, 50); |
| 25 | +imagecopy($dest, $png_24, 50, 0, 0, 0, 50, 50); |
| 26 | +imagecopy($dest, $png_full, 100, 0, 0, 0, 50, 50); |
| 27 | + |
| 28 | +ob_start(); |
| 29 | +imagegd($dest); |
| 30 | +echo md5(ob_get_clean()), PHP_EOL; |
| 31 | +?> |
| 32 | +==DONE== |
| 33 | +--EXPECT-- |
| 34 | +9b36049de01006b367efd433f1689043 |
| 35 | +==DONE== |
0 commit comments