Page 1 sur 1

Concatener images, sprite..imagecreatetruecolor..

Posté : 08 déc. 2021, 21:40
par KIjuko
Bonjour ,
J'ai comme consigne :

Au départ, nous avons un dossier contenant plusieurs images au format PNG.
L’idée principale du projet est de développer un programme, qui concatène toutes ces images en un seul
sprite.

Le problème c'est que je n'arrive pas à donner comme dimensions à "imagecreatetruecolor" la taille que j'aimerais lui donner.
En gros s'il y a 60 images dans le dossier images, je voudrais que les dimensions soient celles de toutes les images en une seule.

Je sais pas si c'est faisable ou si mon code est à côté de la plaque.

voici mon code:
<?php
$path = "images";
$imgs = getImages($path);
foreach ($imgs as $img) {
echo "mon image :\n";
print_r($img['image']);
echo "\nma size :\n";
print_r($img['size'][0]);
}
function getImages($path)
{
$myImages = array();
$dh = opendir($path);
while (false !== ($file = readdir($dh))) {
if (!is_dir($file)) {
/*
$img = create_image($file);
array_push($myImages, $img);
*/
array_push($myImages, array(
"image" => imagecreatefrompng("images/" . $file),
"size" => getimagesize("images/" . $file)
));
}
}
return $myImages;
}
function my_merge_image($imgs)
{
$all_img = imagecreatetruecolor(1920, 1080);
$background = imagecolorallocatealpha($all_img, 255, 255, 255, 127);
imagefill($all_img, 0, 0, $background);
imagealphablending($all_img, false);
imagesavealpha($all_img, true);
imagecopy($all_img, $imgs, 0, 0, 0, 0, $imgs, $imgs);
$sprite = "sprite.png";
imagepng($all_img, $sprite);
}
my_merge_image($imgs);

Re: Concatener images, sprite..imagecreatetruecolor..

Posté : 09 déc. 2021, 12:52
par @rthur
Du coup, tu dois calculer d'abord la taille de tes 60 images pour savoir la taille à donner à ton sprite.


Sinon il existe déjà quelques exemples de ce que tu cherches à faire (je n'ai pas testé toutefois mais ça peut servir d'inspiration) :
https://gist.github.com/myCodebox/797dc ... 34f637addf
https://phpsources.net/code/php/images/ ... prites-css

Re: Concatener images, sprite..imagecreatetruecolor..

Posté : 09 déc. 2021, 13:52
par KIjuko
Merci je vais regarder si cela pourra apporter une solution à mon problème