Je travaille actuellement sur un site web et j'utilise depuis peu GD avec PHP pour créer automatiquement des images transparentes composées de texte à utiliser avec la navigation, les en-têtes, etc. sur le site web. Il me fait gagner beaucoup de temps dans Photoshop et je peux changer le texte sur les boutons instantanément si nécessaire.PHP GD Trim Pixels transparents de créé PNG
Eh bien, j'ai atteint une impasse ici. J'ai trouvé la méthode de dimensionnement de la "zone de texte", créée comme image, à la taille du texte. Mais le problème auquel je suis confronté est le fait que j'utilise une police TTF qui est différente de ce que GD attend de la taille. Fondamentalement, la dernière lettre serait coupée de l'image sortie. Donc je me demandais s'il y avait un moyen de résoudre ce problème tout en gardant un bord serré au texte ou de faire la zone de texte d'origine une taille beaucoup plus grande, puis "couper" les pixels transparents de l'image.
Voici le code que je travaille avec maintenant ...
<?
$text = strip_tags($_GET['btn']);
if(file_exists('nav_'.$text.'.png')) {
header("Content-type: image/png");
$image = imagecreatefrompng('nav_'.$text.'.png');
imagesavealpha($image, true);
imagealphablending($image, false);
imagepng($image);
imagedestroy($image);
} else {
header("Content-type: image/png");
$fontSize = 10;
$angle = 0;
$font = "RonniaBold.ttf";
$size = imagettfbbox($fontSize, $angle, $font, $text);
$image = imagecreatetruecolor(abs($size[2]) + abs($size[0]) + 5, abs($size[7]) + abs($size[1]) + 5);
imagesavealpha($image, true);
imagealphablending($image, false);
$transparentColor = imagecolorallocatealpha($image, 200, 200, 200, 127);
imagefill($image, 0, 0, $transparentColor);
$textColor = imagecolorallocate($image, 125, 184, 222);
imagettftext($image, $fontSize, 0, 1, abs($size[5])+1, $textColor, $font, str_replace('_',' ',strtoupper($text)));
imagepng($image, 'nav_'.$text.'.png', 0);
imagedestroy($image);
}
?>
Espérons que les gars ont un aperçu de cela, je ne pouvais vraiment l'utiliser!
Je pense qu'Imagick était bien mieux pour faire différentes choses, mais le problème est que mon hôte ne l'a pas installé sur leurs serveurs et ne peut pas l'installer en raison d'un conflit avec un autre plugin. C'est pourquoi j'essaie de le faire avec GD. –