Page 1 sur 1

Besoin aide crop PHP

Posté : 11 janv. 2022, 18:09
par MarYas
Bonjour à tous,
J'ai un petit soucis je voudrais utiliser ce code trouver sur php.net mais mon soucis c'est que c'est simplement pour le png, je me doute que je peux faire avec d'autre extension mais comment faire pour éviter de répéter le code pour chaque extension meerci pour vos réponses
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
    imagepng($im2, 'example-cropped.png');
    imagedestroy($im2);
}
imagedestroy($im);

Re: Besoin aide crop PHP

Posté : 11 janv. 2022, 18:22
par @rthur
Il faut forcément que tu utilises imagecreatefromXXX où X est le format de ton image.

Voici ci-dessous une fonction imagecreatefromany() qui va déterminer automatiquement le format et donc d'utiliser la bonne fonction correspondante.
function imagecreatefromany($filepath) {
    $type = exif_imagetype($filepath);
    $allowedTypes = array(1, 2, 3, 6, 18); // gif, jpg, png, bmp, webp
    if (!in_array($type, $allowedTypes)) return false;
    switch ($type) {
        case 1 :
            $im = imagecreatefromgif($filepath);
        break;
        case 2 :
            $im = imagecreatefromjpeg($filepath);
        break;
        case 3 :
            $im = imagecreatefrompng($filepath);
        break;
        case 6 :
            $im = imagecreatefrombmp($filepath);
        break;
        case 18 :
            $im = imagecreatefromwebp($filepath);
        break;
    }   
    return $im; 
} 

Re: Besoin aide crop PHP

Posté : 11 janv. 2022, 19:09
par MarYas
Ok merci donc je vais utiliser ça ;)

Re: Besoin aide crop PHP

Posté : 15 janv. 2022, 01:06
par MarYas
Dsl j'ai encore une question quand l'image est un png sans fond est qu'il crop le fond est bizarre rempli de pixel comment je peux contrait ça ? Y a t-il un moyen en PHP de voir si une image a un fond transparent ou pas ?

Re: Besoin aide crop PHP

Posté : 15 janv. 2022, 11:49
par @rthur
De mémoire il faut utiliser :
        imagealphablending($im, FALSE);
        imagesavealpha($im, TRUE);
Je te laisse vérifier dans la doc et faire des tests.

Re: [RESOLU] Besoin aide crop PHP

Posté : 20 avr. 2023, 10:43
par MarYas
oui c'est ça merci

Re: [RESOLU] Besoin aide crop PHP

Posté : 20 avr. 2023, 13:36
par @rthur
oui c'est ça merci
15 mois plus tard !
Merci en tout cas pour la confirmation, ça servira à d'autres qui auraient le même problème :D

Re: [RESOLU] Besoin aide crop PHP

Posté : 20 avr. 2023, 14:03
par MarYas
oui dsl pas avoir répondu plus tôt mais je mets à jour mes post en "résolu" mais oui ça m'avait servie désolé j'avais pas pensé mais c'est le minimum.