Je suis en train de cadrer des annonces avec une bordure incurvée.Fusion de plusieurs fichiers PNG transparents en un seul
Voici une exemple d'annonce: http://imageshack.us/f/20/4e5f5fe94b327new60seciq.png/
Je suis en train de reproduire ce qui se fait dans Photoshop, placez l'un sur l'autre. Voici le code que je utilise:
// create destination canvas
$dest_img = imagecreatetruecolor(176, 75);
// Make the background transparent
$black = imagecolorallocate($dest_img, 0, 0, 0);
imagecolortransparent($dest_img, $black);
imageAlphaBlending($dest_img, false);
imageSaveAlpha($dest_img, true);
// copy ad into destination
imagecopy($dest_img, $ad_image, 0, 0, 0, 0, 176, 75);
// copy frame onto first half of image
imagecopy($dest_img, $curve_image, 0, 0, 0, 0, 88, 75);
Ce qui se passe est que la dernière copie ait lieu (le cadre) est prioritaire par et au lieu de voir l'annonce, im obtenir un bloc transparent. Voici une sauter image de ce que GD est en train de faire:
http://imageshack.us/f/684/unled1to.png/
J'espère qu'il ya une solution simple pour obtenir la couche inférieure de rester visible - sinon je pense que je vais devoir écrire une fonction et allez pixel par pixel et comparez ...
if (bottom_px == trans && top_px == trans) {
dest_px = trans;
}
else {
dest_px = top_px;
}
Mon représentant est faible alors voici le lien vers l'image du cadre: http://imageshack.us/f/405/singlew.png/ – cloakedninjas