Ticket #2805 (closed defect (bug): fixed)
Preserve PNG transparency/alpha during thumbnail creation
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | high | Milestone: | 2.5 |
| Component: | Administration | Version: | 3.0.4 |
| Severity: | major | Keywords: | |
| Cc: |
Description
PNG images with transparent backgrounds get thumbnails with black backgrounds. This patch to wp_create_thumbmail() fixes that.
Attachments
Change History
-
attachment
wp_create_thumbnail-preserve-PNG-transparency.diff
added
My ideal patch incorporates the return value change I mention on #2682
-
attachment
wp_create_thumbnail-preserve-PNG-transparency-ideal.diff
added
same patch but with function return value changed
- Status changed from new to closed
- Resolution set to wontfix
No traction in almost a year, so closing as wontfix.
Feel free to re-open it if you have additional information/suggestions/patches/...
- Status changed from closed to reopened
- Resolution wontfix deleted
I really wish this will be fixed!! This is really sad that WP lost the transparency in the PNG... Why can't it be integrated into WP main code? I have to do and redo the modification at each update!! :-(
After the line 2294 of this file: http://trac.wordpress.org/browser/tags/2.2.1/wp-admin/admin-functions.php add the following lines:
if ( ( $type[2] == 3) AND ( function_exists( 'imagesavealpha' ) ) ) {
imagesavealpha( $thumbnail, TRUE ); $trans_colour = imagecolorallocatealpha($thumbnail, 0, 0, 0, 127); imagefill($thumbnail, 0, 0, $trans_colour);
}
This code was taken from this documentation page: http://fr.php.net/manual/en/function.imagecreatetruecolor.php
- Milestone changed from 2.4 (future) to 2.3 (trunk)
Uploaded a simpler patch which should do the trick for trunk. Somebody test it out.
This does need to be in trunk, IMO. Uploading transparent PNG files only to have it mangle their thumbnails is a pretty bad user experience. This is a simple patch that just sets some flags in the GD functions if those flags are available.
- Keywords has-patch needs-testing added
- Severity changed from normal to major
While I agree I would like to see this in 2.3.
It needs some testing before it can go in.
If anybody else wants to test, a bunch of transparent png's to test with can be found here: http://entropymine.com/jason/testbed/pngtrans/
- Owner changed from anonymous to westi
- Status changed from reopened to new
comment:10
westi — 4 years ago
- Status changed from new to closed
- Resolution set to fixed
-
attachment
test_pngs_8-32_bit.zip
added
It contains 2 PNG files exported from Fireworks at 8bit and 32bit
comment:11
in reply to:
↑ description
bfred.it — 13 months ago
- Keywords has-patch needs-testing removed
- Status changed from closed to reopened
- Version changed from 2.1 to 3.0.4
- Resolution fixed deleted
The solution doesn't work for 8 bit PNGs. I attached the two files I encountered the problem with, in a ZIP.
comment:12
Otto42 — 13 months ago
- Status changed from reopened to closed
- Resolution set to fixed
That's actually a problem with the GD library and also that 8-bit PNGs are palletized. No programmatic solution can create transparent 8-bit PNG files properly.
Use 24-bit PNGs if you want transparency to be preserved.

the patch