Библиотека PHPImageWorkshop: наложение прозрачных изображений PNG

Я использую Библиотека PHPImageWorkshop наслоить прозрачные изображения (это одна из тех вещей, в которых он должен превзойти, поэтому я должен делать это неправильно)!

Когда я просто указываю базовый слой (прозрачный логотип PNG), все работает как положено, см. Код:

<?php
use PHPImageWorkshop\ImageWorkshop;
require_once('lib/PHPImageWorkshop/ImageWorkshop.php');

$base_layer = ImageWorkshop::initFromPath( __DIR__.'/img/bg.png' );

$dirPath = dirname(__FILE__).'/output/';
$filename = "file.png";
$base_layer->save( $dirPath, $filename, false, null, 95 );
?>
<img src="/output/file.png">

… В результате получается прозрачный PNG с заданным фоновым изображением, как и ожидалось (здесь я ничего не делаю, кроме копирования изображения).

Проблема возникает, когда я пытаюсь добавить изображение меньшего размера поверх фонового слоя, вместо того, чтобы наложить его, оно перезаписывает мое фоновое изображение, заменяя его полностью?

Здесь я пытаюсь создать маленький серый квадрат (100 x 100) и поместить его в середине моего фонового логотипа (используя мой существующий код):

<?php
use PHPImageWorkshop\ImageWorkshop;
require_once('lib/PHPImageWorkshop/ImageWorkshop.php');

$base_layer = ImageWorkshop::initFromPath( __DIR__.'/img/bg.png' );

// ADDED 2 LINES--------------------------------------------------
$layer_two  = ImageWorkshop::initVirginLayer( 100, 100, 'CCCCCC' );
$base_layer->addLayerOnTop( $layer_two, 0, 100, 'MT' );

$dirPath = dirname(__FILE__).'/output/';
$filename = "file.png";
$base_layer->save( $dirPath, $filename, false, null, 95 );
?>
<img src="/output/file.png">

Теперь мой фоновый логотип больше не виден, и у меня есть маленький серый квадрат на прозрачном слое, размер которого был моим фоновым изображением.

Что я делаю не так, пожалуйста?

Спасибо за поиск …

0

Решение

Я понял это после 24 часов, попробовав все … это был не мой код, а изображение PNG, которое я использовал для фонового слоя, который был виноват.

Ранее он был сохранен как индексированный цветовой файл (вместо RGB), а затем повторно сохранен как PNG, поэтому он был в неправильном цветовом режиме.

В конце концов я попробовал тот же код, используя стандартное изображение PNG, и все работало нормально!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]