Cette fonction, que j'ai volée sans vergogne sur internet, recadre une zone de 90x60 à partir d'une image existante.PHP - Comment sécuriser un nom de variable unique?
Dans ce code, lorsque j'utilise la fonction pour plus d'un élément (image), l'un s'affiche au-dessus de l'autre (ils occupent le même espace de sortie).
Je pense que c'est parce que la fonction a le même nom (statique) ($ dest) pour la destination de l'image quand elle est créée (imagecopy).
J'ai essayé, comme vous pouvez le voir, d'inclure un second argument à la fonction cropit qui servirait de "nom" à la variable $ dest, mais cela n'a pas fonctionné.
Dans l'intérêt de la divulgation complète, j'ai 22 heures d'expérience PHP (par ailleurs le même nombre d'heures depuis le dernier je dormais) et je ne suis pas si malin pour commencer.
Même s'il y a quelque chose d'autre à l'œuvre ici, il me semble qu'il est généralement utile d'avoir un moyen de s'assurer qu'une variable reçoit toujours un nom unique.
<?php
function cropit($srcimg, $dest) {
$im = imagecreatefromjpeg($srcimg);
$img_width = imagesx($im);
$img_height = imagesy($im);
$width = 90;
$height = 60;
$tlx = floor($img_width/2) - floor ($width/2);
$tly = floor($img_height/2) - floor ($height/2);
if ($tlx < 0)
{
$tlx = 0;
}
if ($tly < 0)
{
$tly = 0;
}
if (($img_width - $tlx) < $width)
{
$width = $img_width - $tlx;
}
if (($img_height - $tly) < $height)
{
$height = $img_height - $tly;
}
$dest = imagecreatetruecolor ($width, $height);
imagecopy($dest, $im, 0, 0, $tlx, $tly, $width, $height);
imagejpeg($dest);
imagedestroy($dest);
}
$img = "imagefolder\imageone.jpg";
$img2 = "imagefolder\imagetwo.jpg";
cropit($img, $i1);
cropit($img2, $i2);
?>
Hahahahaha, la description hilarante :) mais ce qui est exactement votre question? De quel nom avez-vous besoin rendu unique? –
Mmh il devrait fonctionner pour recadrer plus d'images puis un seul avec le code. Que voulez-vous dire exactement par * l'un affichera sur l'autre * Deux images différentes sont contenues dans un? Btw. votre deuxième paramètre ne fait rien, il ne sert à rien (vous ne définissez même pas une valeur pour '$ i '.) –