¿Por qué este PNG transparente causa bordes cuando se combina utilizando GD?

Estoy tratando de crear una imagen de otra imagen usando PHP. Aquí está mi código:

<?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);
?>

Así que estoy cargando esta imagen en$source_under

y copiarlo sobre una imagen de "lienzo" en blanco transparente. Aquí está el resultado de esa operación:

Como puede verse, hay una especie de borde negro alrededor de toda la imagen inicial. Creo que esto se debe al hecho de que inicialmente, la imagen del "lienzo" es toda negra. Entonces, hay algo mal con la transparencia y el suavizado de la imagen.

Esta no es la primera vez que tengo un problema similar, pero la última vez la causa fue la imagen de origen. Esta vez, abrirlo en Photoshop no muestra ningún problema potencial con él.

¿Alguien sabe cómo arreglar esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta