J'essaie actuellement de travailler avec des images et PHP, grâce aux fonctions GD. Maintenant, je voudrais modifier la taille des images PNG. Voici un exemple d'un PNG Je voudrais redimensionner: Recadrer une image png avec PHP, supprimer la transparence vide
La ligne en pointillé représentent la frontière du PNG, l'arrière-plan est transparent, et je n'ai une étoile perdue au milieu d'un grand espace. J'aimerais recadrer cette étoile, pour obtenir un simple carré de l'étoile (même si le nouveau fond devient vide, ça n'a pas d'importance).
Comment pourrais-je faire quelque chose comme ça efficacement? Je pensais faire une boucle en vérifiant chaque pixel de l'image .. Essayant de trouver où l'image est, pour finalement recadrer avec une petite marge basée sur les valeurs minimales x/maximum X et minimum y/maximum y, mais si je commence à travailler avec des centaines de photos, ce serait vraiment long.
EDIT:
<?php
$file = "./crop.png";
$ext = pathinfo($file, PATHINFO_EXTENSION);
$image;
switch ($ext){
case 'png':
$image = imagecreatefrompng($file);
break;
case 'jpeg':
case 'jpg':
$image = imagecreatefromjpeg($file);
break;
case 'gif':
$image = imagecreatefromgif($file);
break;
}
$cropped = imagecropauto($image, IMG_CROP_DEFAULT);
if ($cropped !== false) { // in case a new image resource was returned
echo "=> Cropping needed\n";
imagedestroy($image); // we destroy the original image
$image = $cropped; // and assign the cropped image to $im
}
imagepng($image, "./cropped.png");
imagedestroy($image);
Avez-vous essayé? Actuellement, c'est trop large. –
Oui. Vérification de chaque pixel de l'image, recadrage de (min X, min Y) à (max X, max Y), en ajoutant un peu de marge. Cela fonctionne parfaitement pour une image, mais j'aimerais appliquer ce script à des centaines de photos. Je ne suis pas sûr qu'un serveur appréciera ce type de script en boucle, je suis assez nouveau avec PHP et s'il y a un moyen plus efficace de le faire, ça m'intéresse! – saperlipopette
Si vous avez écrit le code et vous posez des questions sur l'efficacité, vous voulez probablement https://codereview.stackexchange.com –