[RESOLU] Concatener images, sprite..imagecreatetruecolor..

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Concatener images, sprite..imagecreatetruecolor..

Re: Concatener images, sprite..imagecreatetruecolor..

par KIjuko » 09 déc. 2021, 13:52

Merci je vais regarder si cela pourra apporter une solution à mon problème

Re: Concatener images, sprite..imagecreatetruecolor..

par @rthur » 09 déc. 2021, 12:52

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

Concatener images, sprite..imagecreatetruecolor..

par KIjuko » 08 déc. 2021, 21:40

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);