PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Tuesday, October 11, 2022

[FIXED] Why does this transparent PNG cause borders when combined using GD?

 October 11, 2022     antialiasing, gd, image, php, transparency     No comments   

Issue

I am trying to create an image from an another image using PHP. Here is my code:

<?php
    $width = 109;
    $height = 109;
    $image = imagecreatetruecolor($width, $height);
    $source_under = imagecreatefrompng('ecloid_under.png');
    $black = imagecolorallocate($image, 0x00, 0x00, 0x00);

    imagecolortransparent($image, $black);

    imagecopy($image, $source_under, 0, 0, 0, 0, $width, $height);

    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
?>

So I am loading this image in $source_under

enter image description here

and copying it over a transparent blank "canvas" image. Here is the result of that operation:

enter image description here

As can be seen, there is a sort of black border around the whole initial image. I think this is due to the fact that initially, the "canvas" image is all black. So there is something wrong with the transparency and the anti-aliasing of the image.

This isn't the first time I have a similar problem, but last time the source image was the cause. This time around, opening it in Photoshop does not show any potential problems with it.

Does anyone know how to fix this?


Solution

Can you try to enable alpha blending on $image before you copy the original to it:

imagealphablending($image, true); 

Second try would be to create a transparent color and to fill $image with that color before the copy.

$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
imagealphablending($image, true); 


Answered By - huysentruitw
Answer Checked By - Clifford M. (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing