Aller au contenu

Miniature image via URL


Sujets conseillés

Posté (modifié)

Bonjour à tous !

Je cherche un script PHP qui permette de créer une miniature d'une image donné par son URL.

Je m'explique je souhaiterai un script, qui, lorsque je rentre ; script.php?url=URL_DE_L'IMAGE me transforme l'url de l'image en miniature d'une taille X renseigné dans le script ou via l'url ?

Petite précision, la miniature généré ne sera pas celle de l'image du site (screenshot du site) mais bien d'une image "autonome".

Merci d'avance pour vos réponses :)

Modifié par GeoGe
Posté

Salut,

Ci-dessous le script que j'utilise pour redimensionner une image soumise à la volée, à adapter à tes besoins...

$NomLogo = $_FILES['Logo']['name'];
$SizeLogo = $_FILES['Logo']['size'];
$TmpLogo = $_FILES['Logo']['tmp_name'];
$ErrorMsg = $_FILES['Logo']['error'];


$RepCible = "images/logos_clients/";
$MaxSize = 300000; //Limite de 100Ko
$MaxSizeWidth = 150; //Limite de 90 pixels de large
$MaxSizeHeight = 50; //Limite de 70 pixels de haut
$new_Type = "jpg";

$TailleLogo = getimagesize($NomTmpLogo);
$TypeLogo = $TailleLogo[2];
$LogoCible = $RepCible . "logo" . $Client_Info["Client_ID"];
//print "Nom temporaire : $NomTmpLogo<br>";
//print "Nom cible : $LogoCible<br>";
//exit;

if(!empty($NomLogo)){
if($SizeLogo <= $MaxSize){
if(move_uploaded_file($NomTmpLogo,$LogoCible)) {

switch($TypeLogo){
case 1:
$TypeLogo = "gif";
break;
case 2:
$TypeLogo = "jpg";
break;
case 3:
$TypeLogo = "png";
break;
default:
$TypeLogo = "Erreur";
break;
}

if($TypeLogo != "Erreur") {
//On charge l'ancien logo suivant son type
switch($TypeLogo){
case "gif":
$oldLogo = ImageCreateFromGif($LogoCible);
break;
case "jpg":
$oldLogo = ImageCreateFromJpeg($LogoCible);
break;
case "png":
$oldLogo = ImageCreateFromPng($LogoCible);
break;
}

//On détermine la taille de l'ancien logo
$oldLogoWidth = $TailleLogo[0];
$oldLogoHeight = $TailleLogo[1];

if($oldLogoHeight > $oldLogoWidth){
//Hauteur du nouveau logo
$newLogoHeight = $MaxSizeHeight;

//On maintient le ratio de l'image
$newLogoWidth = round(($newLogoHeight / $oldLogoHeight) * $oldLogoWidth);
}elseif($oldLogoHeight < $oldLogoWidth){
//Largeur du nouveau logo
$newLogoWidth = $MaxSizeWidth;

//On maintient le ratio de l'image
$newLogoHeight = round(($newLogoWidth / $oldLogoWidth) * $oldLogoHeight);
}elseif($oldLogoHeight == $oldLogoWidth){
//Largeur & hauteur du nouveau logo
$newLogoWidth = $MaxSizeWidth;
$newLogoHeight = $MaxSizeHeight;
}


//Création du nouveau logo
$newLogo = ImageCreateTrueColor($newLogoWidth,$newLogoHeight);

//Redimentionnement de l'ancien logo dans le nouveau logo
ImageCopyResampled($newLogo,$oldLogo,0,0,0,0,$newLogoWidth,$newLogoHeight,$oldLogoWidth,$oldLogoHeight);


//On sauvegarde le nouveau logo en remplacant l'ancien suivant son type
switch($new_Type){
case "gif":
ImageGif($newLogo,$LogoCible);
break;
case "jpg":
ImageJpeg($newLogo,$LogoCible);
break;
case "png":
ImagePng($newLogo,$LogoCible);
break;
}

$new_Nom = "Logo" . $Client_Info["Client_ID"] . ".".$new_Type;

rename($LogoCible,$RepCible.$new_Nom);

//On détruit les images temporaires
ImageDestroy($newLogo);
ImageDestroy($oldLogo);

//Fichier Final avec chemin compplet
$Final_File = $RepCible . $new_Nom;

} else {
//Mauvais format de Logo, avertir


}
} else {
//Pbe upload avertir


exit;
}
} else {
//Image >300KO


exit;
}
}
}

Bon courage !

Posté

Merci pour ta réponse BlackPage.

Finalement, j'ai trouvé un petit script qui me convient parfaitement :)

Pour ceux que ça intéresse : Timthumb

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...