Forums / Developer / PNG image resize loose transparency

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

PNG image resize loose transparency

Author Message

Olivier Versanne

Monday 06 July 2009 4:39:35 am

Hi,

I'm using eZ Image filters to resize my PNG pictures.

Here my image.ini.append.php :

<?php /* #?ini charset="iso-8859-1"?

[AliasSettings]
AliasList[]=alternate_view

[alternate_view]
Reference=reference
Filters[]=geometry/scaledownonly=45;45
*/

And, when I try to view the resized picture, I get a black background instead of transparency background.
I think this problem comes from the grafical module that eZ is using. How could I know which extension eZ uses, and how could I change it? (Imagick / GD... or another that works with eZ).

Thanks,

Olivier.

André R.

Monday 06 July 2009 5:24:25 am

This is controlled by image.ini settings, and if ImageMagic is not used (as in GD is used instead), you can see that in settings/override/image.ini.append.php with content like this:

[ImageMagick]
IsEnabled=false

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Olivier Versanne

Monday 13 July 2009 4:24:23 am

Thanks!

Vytautas Germanavičius

Thursday 08 October 2009 4:52:09 am

after i switched to gd i lost transparency on all png images.

Has anyone solution for this?

i filled issue:
http://issues.ez.no/IssueView.php?Id=15640&activeItem=1

{set-block scope=root variable=cache_ttl}0{/set-block}

Vytautas Germanavičius

Friday 17 June 2011 8:22:21 am

This message gave me idea
http://stackoverflow.com/questions/32243/can-png-image-transparency-be-preserved-when-using-phps-gdlib-imagecopyresampled

And i made small changes in ezimagegdhandler.php:
i added

    imagealphablending( $temporaryImageObject, false );    imagesavealpha( $temporaryImageObject, true );

after

       $temporaryImageObject = eZImageGDHandler::imageCreate( $destinationWidth, $destinationHeight, eZImageGDHandler::isImageTrueColor( $imageObject, $sourceMimeData ) );

It saves PNG transparency before resizing.

I made patch, if someone is interested. http://issues.ez.no/IssueView.php?Id=15640&activeItem=1

{set-block scope=root variable=cache_ttl}0{/set-block}