Как заменить базовый цвет прозрачного png изображения на текстуру?

Есть ли идеи о том, как я могу заменить базовый цвет прозрачного изображения PNG с текстурой?

В этом URL: Php — заменить базовый цвет прозрачного изображения PNG

некоторый код для замены цвета другим цветом …

код:

function colorizeBasedOnAplhaChannnel( $file, $targetR, $targetG, $targetB, $targetName ) {

$im_src = imagecreatefrompng( $file );

$width = imagesx($im_src);
$height = imagesy($im_src);

$im_dst = imagecreatefrompng( $file );

// Note this:
// Let's reduce the number of colors in the image to ONE
imagefilledrectangle( $im_dst, 0, 0, $width, $height, 0xFFFFFF );

for( $x=0; $x<$width; $x++ ) {
for( $y=0; $y<$height; $y++ ) {

$alpha = ( imagecolorat( $im_src, $x, $y ) >> 24 & 0xFF );

$col = imagecolorallocatealpha( $im_dst,
$targetR - (int) ( 1.0 / 255.0  * $alpha * (double) $targetR ),
$targetG - (int) ( 1.0 / 255.0  * $alpha * (double) $targetG ),
$targetB - (int) ( 1.0 / 255.0  * $alpha * (double) $targetB ),
$alpha
);

if ( false === $col ) {
die( 'sorry, out of colors...' );
}

imagesetpixel( $im_dst, $x, $y, $col );

}

}

imagepng( $im_dst, $targetName);
imagedestroy($im_dst);

}

unlink( dirname ( __FILE__ ) . '/newleaf.png' );
unlink( dirname ( __FILE__ ) . '/newleaf1.png' );
unlink( dirname ( __FILE__ ) . '/newleaf2.png' );

$img = dirname ( __FILE__ ) . '/leaf.png';
colorizeBasedOnAplhaChannnel( $img, 0, 0, 0xFF, 'newleaf1.png' );
colorizeBasedOnAplhaChannnel( $img, 0xFF, 0, 0xFF, 'newleaf2.png' );
?>

Original
<img src="leaf.png">
<br />
<img src="newleaf1.png">
<br />
<img src="newleaf2.png">

Моя цель — заменить цвет текста с помощью php или imagemagick в png файле на текстуру …

-1

Решение

Я нахожу способ сделать это:

Мой метод :
например, у вас есть эта текстура:

введите описание изображения здесь

и ваш текст: «Образец текста»,
Вы можете создать этот текст с помощью imagemagick или, по-моему, мне нужно создать персидский текст, поэтому я изменяю свой текст на файл PNG с черным фоном и текстом.

лайк :

введите описание изображения здесь

введите описание изображения здесь

Хорошо, тогда вам нужно скомпоновать этот файл изображения с кодом imagemagick, например:

exec(' convert ripple-overlay.png  text-mask.png -alpha Off  -compose CopyOpacity   -composite  result.png');

и ваш результат будет таким:

введите описание изображения здесь

введите описание изображения здесь

Я надеюсь, что это полезно.
С наилучшими пожеланиями.

0

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

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

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