Почему этот прозрачный PNG вызывает границы при объединении с использованием GD?

Я пытаюсь создать изображение из другого изображения с помощью PHP. Вот мой код:

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

Поэтому я загружаю это изображение в$source_under

enter image description here

и копирование его поверх прозрачного пустого изображения «холст». Вот результат этой операции:

enter image description here

Как видно, вокруг всего исходного изображения есть своего рода черная рамка. Я думаю, это связано с тем, что изначально изображение "холст" полностью черное. Значит, что-то не так с прозрачностью и сглаживанием -изображения.

Это не первый раз, когда у меня возникает подобная проблема, но в прошлый раз причиной было исходное изображение. На этот раз открытие его в Photoshop не показывает каких-либо потенциальных проблем с ним.

Кто-нибудь знает, как это исправить?

6
задан chaos 23 July 2012 в 21:10
поделиться