Also ich versuche, zwei große Bilder (aber später werde ich insgesamt 6 Bilder zu kombinieren), Größe sie auf die x, y Breite, Höhe, die ich aus Photoshop genommen habe, und kombinieren sie in ein 460 x 230 großes Bild. DieseImage GD Größe ändern Problem
ist der Code Ich verwende
<?php
$dest = imagecreatefrompng('https://blzgdapipro-a.akamaihd.net/hero/ana/career-portrait.png');
$src = imagecreatefrompng('https://blzgdapipro-a.akamaihd.net/game/rank-icons/season-2/rank-6.png');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagealphablending($src, false);
imagesavealpha($src, true);
//imagescale($dest, 396, 161.92);
$some = imagecreate(460, 230);
$dest2 = resize($dest, 396, 162);
$src2 = resize($src, 79.19, 79.19);
//imagecopyresized($dest, $dest, 0, 0, 0, 0, 396, 161.92, 1098, 449);
imagecopyresized($src, $src, 10, 10, 0, 0, 79.19, 79.19, 256, 256);
//$img2 = imagecopymerge($dest, $src, 0, 0, 0, 0, 256, 256, 100); //have to play with these numbers for it to work for you, etc.
imagecopymerge($dest2, $src2, 0, 0, 0, 0, 460, 230, 50);
header('Content-Type: image/png');
imagepng($dest, 'merged2.png');
imagepng($dest2);
//file_put_contents('merged.png', $contents);
imagedestroy($dest);
imagedestroy($src);
imagedestroy($some);
imagedestroy($dest2);
imagedestroy($src2);
imagedestroy($img2);
//imagedestroy($then);
function resize($img, $width, $height, $stretch = false)
{
$temp = imagecreatetruecolor($width, $height);
imagealphablending($temp, true);
imagesavealpha($temp, true);
$bg = imagecolorallocatealpha($temp, 0, 0, 0, 0); // Background color
imagefill($temp, 0, 0, $bg);
if ($stretch)
{
imagecopyresampled($temp, img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));
}
else
{
if (imagesx($img) <= $width && imagesy($img) <= $height)
{
$fwidth = imagesx($img);
$fheight = imagesy($img);
}
else
{
$wscale = $width/imagesx($img);
$hscale = $height/imagesy($img);
$scale = min($wscale, $hscale);
$fwidth = $scale * imagesx($img);
$fheight = $scale * imagesy($img);
}
imagecopyresampled($temp,
$img,
($width - $fwidth)/2, ($height - $fheight)/2,
0, 0,
$fwidth, $fheight,
imagesx($img), imagesy($img)
);
}
return $temp;
}
Das Problem ist, dass das Bild gerendert wird sehr verblasst wegen dieser Zeile:
imagecopymerge($dest2, $src2, 0, 0, 0, 0, 460, 230, 50);
Wenn ich die 50 zu ändern, was ist der PCT-Wert auf 100, zeigt es ein Bild mit einem schwarzen Hintergrund (Maskierung des anderen Bildes), aber wenn ich es auf 0 ändern, zeigt es nur das andere Bild mit einem schwarzen Hintergrund (Maskierung des anderen Bildes) Wenn der Wert entweder 0 oder 100 ist, ist das angezeigte Bild jedoch vollfarbig. Wie füge ich diese zwei Bilder zusammen, während ich ihre Transparenz und Farbbrillanz beibehalte?
Ich habe auch versucht, diese Werte zu verwenden: 'imagealphellend ing ($ dest, wahr); imagesavealpha ($ dest, true); imagealpblending ($ src, true); imagesavealpha ($ src, true); ' –