Créer un fichier png transparent à l'aide de PHP
Actuellement, je voudrais créer une image png transparente avec la qualité la plus basse .
Le code:
<?php
function createImg ($src, $dst, $width, $height, $quality) {
$newImage = imagecreatetruecolor($width,$height);
$source = imagecreatefrompng($src); //imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.
imagecopyresampled($newImage,$source,0,0,0,0,$width,$height,$width,$height);
imagepng($newImage,$dst,$quality); //imagepng() creates a PNG file from the given image.
return $dst;
}
createImg ('test.png','test.png','1920','1080','1');
?>
Cependant, il ya quelques problèmes:
-
Ai-je besoin spécifique d'un fichier png avant de créer un nouveau fichier? Ou puis-je créer sans existantes fichier png?
Avertissement: imagecreatefrompng(test.png): failed to open stream: No such file or directory in
C:\DSPadmin\DEV\ajax_optipng1.5\create.php sur la ligne 4
-
Bien qu'il existe de message d'erreur , il continue de générer un fichier png , cependant, ce que j'ai trouvé c'est que le fichier est un noir, image en couleur , dois-je le spécifique importe quel paramètre de la rendre transparente?
Grâce.
OriginalL'auteur user782104 | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
À 1)
imagecreatefrompng('test.png')
essaie d'ouvrir le fichiertest.png
qui peuvent ensuite être édités avec GD fonctions.De 2)
Pour activer l'enregistrement du canal alpha
imagesavealpha($img, true);
est utilisé.Le code suivant crée un 200x200px de la taille d'image transparente en permettant alpha d'épargne et de le remplir avec de la transparence.
imagepng
s par défaut du paramètre de "qualité" (qui devrait être nommé à des compressions, depuispng
s compressions est lossless) est de 9 (autant que je sache, j'ai testé avec pas de définir la qualité (234Bytes
), la qualité de l'0 (quelques centaines deKB
), et une valeur de 9 (234 Octets)). Donc je suppose que c'est le meilleur GD pourrait le faire.cela rend mes lignes noires disparaissent
OriginalL'auteur max-m
Prendre un coup d'oeil à:
Un exemple de fonction copie au format PNG transparent fichiers:
OriginalL'auteur such developer
1) Vous pouvez créer un nouveau fichier png sans existante.
2) Vous obtenez un noir couleur de l'image parce que vous utilisez
imagecreatetruecolor();
. Il crée une meilleure qualité d'image avec un fond noir. Comme vous avez besoin d'une plus faible qualité de l'image, utilisezimagecreate();
Vous pouvez en savoir plus dans cet article: Comment Créer une Image en Utilisant PHP
OriginalL'auteur user3051471