Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
jeje1978
# 21 Apr 2008 - 16:57:31
Citer
17 Posts
Bonjour à tous,

j'ai cherché un script sur le redimensionnement d'image tout en conservant le fichier original de la photo mais en vain pas grand chose.

j'ai crée ma fonction upload et je voudrais y adapter derrière le redimensionnement.

if(isset($_FILES["fichier"])){

switch($_FILES["fichier"]["error"]){
case 0: $erreur="Pas d'erreur"; break;
case 1: $erreur="Le fichier dépasse la taille max. définie sur le serveur (php.ini)"; break;
// directive upload_max_filesize
case 2: $erreur="Le fichier dépasse la taille max. définie dans le formulaire"; break;
case 3: $erreur="Le fichier n'a été que partiellement chargé"; break;
case 4: $erreur="Le fichier n'a pas pu être téléchargé"; break;
case 5: $erreur="Il n'existe pas de dossier temporaire, tel que défini par le serveur (php.ini)"; break;
// directive upload_tmp_dir
case 6: $erreur="Impossible d'écrire dans le dossier : vérifiez les droits"; break;
default: $erreur="Erreur inconnue"; break;
}
if($_FILES["fichier"]["error"]==0){
$depart=$_FILES["fichier"]["tmp_name"];
$arrivee="images/".$_FILES["fichier"]["name"];
// vérification qu'un fichier portant ce nom n'existe pas déjà
if(file_exists($arrivee)){
$erreur="Un fichier portant ce nom existe déjà";
} else {
if(move_uploaded_file($depart, $arrivee)){
header("Location:upload_reussi.php");
} else {
$erreur="Impossible de transférer le fichier";



Savez vous ou je pourrais me renseigner pour obtenir ce genre de script

merci beaucoup

bonne apres midi

jeje78

^
dew
# 21 Apr 2008 - 17:36:12
Citer
Administrateur
653 Posts
[ code ] !

Après avoir exécuté move_uploaded_file, il faut créer ta preview à partir de ce fichier, dans le même répertoire ou dans un autre.

Tu trouveras les fonctions suivantes dans la doc PHP :
imagecreatetruecolor
imagecreatefromjpeg
imagecreatefrompng
imagecreatefromgif
imagecopyresampled
imagejpeg


Et voici un petit bout de code pour te mettre sur la voie :

$jpgquality=90; // Qualité compression jpeg
$dest_width = 200; // Largeur image destination
$dest_height = 150; // Hauteur image destination
$source_file = $arrivee; // Fichier d'origine
$dest_path = 'thumbs/'.$arrivee; // Fichier de sortie (voir pour gérer le répertoire)

$dest_image = imagecreatetruecolor($dest_width,$dest_height);

if(preg_match('/\.(jpg|jpeg)$/i',$source_file))
$source_image = imagecreatefromjpeg($source_file);
else if(preg_match('/\.(png)$/i',$source_file))
$source_image = imagecreatefrompng($source_file);
else if(preg_match('/\.(gif)$/i',$source_file))
$source_image = imagecreatefromgif($source_file);
else
$source_image = false;

$dest_x = $dest_y = $source_x = $source_y = 0;

if($dest_image && $source_image) {
imagecopyresampled($dest_image,$source_image,$dest_x,$dest_y,$source_x,$source_y,$dest_width,$dest_height,$source_width,$source_height);
imagejpeg($dest_image,$dest_path,$jpgquality);
}


En décomposant ton problème en tâches simples je suis sûr que tu sauras quoi utiliser cligne
Modifié par dew (21 Apr 2008 - 17:36)

^
jeje1978
# 22 Apr 2008 - 09:44:13
Citer
17 Posts
Bonjour,

merci je vais essayer de me débrouiller

bonne journée
jeje78

^
jeje1978
# 23 Apr 2008 - 09:16:44
Citer
17 Posts
Bonjour , je m'en sors toujours pas avec cette fonction redimensionnement de l'image , la fonction upload marche nickel, seul la partie redimensionnement ne me crée pas de vignette.

Est ce quelqu'un pourrais m'aider

Merci beaucoup


bonne journee

 <?php
// nombre de fichiers à uploader
$nbr_fichiers = $_POST['nbr_f'];

// boucle permettant d'uploader les fichiers un à un
for($nbr=0;$nbr<$nbr_fichiers;$nbr++){

// on récupère les infos du fichier à uploader
$fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];

// on défini les dimensions et le type du fichier
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);

// infos de contrôle du fichier
$fichier_poids_max = 500000;
$fichier_h_max = 1224;
$fichier_l_max = 1632;

// dossier de destination
$fichier_dossier = 'images/';

// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);

// on renomme le fichier
$fichier_date = date("ymdhis");
$fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;

// on vérifie s'il y a bien un fichier à uploader
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {

// on vérifie le poids du fichier
if (filesize($fichier_temp)<$fichier_poids_max) {

// types de fichiers autorises 1=gif / 2=jpg / 3=png
if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {

// on vérifie si l'image n'est pas trop grande
if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {

// si le fichier est ok, on l'upload sur le serveur
if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {

// on donne un acces total sur le fichier
chmod ($fichier_dossier.$fichier_n_nom, 0777);
}
}
}
}
}
}
// dimension maximale largeur et hauteur comprise
$taille_max = 100;

// si le fichier est plus grand que $taille_max on le miniaturise
if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {

// définition des dimensions
if ($fichier_haut > $fichier_larg){

$mini_haut = $taille_max;
$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);

}
//si plus large que haut
else {

$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
$mini_larg = $taille_max;

}


// si le fichier est un .gif
if ($fichier_type === 1){

// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);

// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreate($mini_larg, $mini_haut);

// fond blanc pour l'image
$fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);

// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// on rend transparent le fond blanc
imagecolortransparent($fichier_reduit, $fond_blanc);

// crée le fichier réduit définitif
imagegif($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);

// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduit, 0777);

}

// si le fichier est un .jpg / .jpeg
if ($fichier_type===2){

// définition de la qualité
$qualite=80;

// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);

// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// crée le fichier réduit définitif
imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit, $qualite);

// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduit, 0777);

}

// si le fichier est un .png
if ($fichier_type===3){

// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);

// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);

// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// crée le fichier réduit définitif
imagepng($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);

// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduit, 0777);

}

// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
}
else {
$nom_fichier_reduit = $fichier_n_nom;
}


merci beaucoup de votre aide

bonne journee
Modifié par jeje1978 (13 May 2008 - 12:33)

^
Gofromiel
# 09 May 2008 - 17:51:49
Citer
2 Posts
Je propose sur mon blog une classe et cinq méthodes pour créer des miniatures. Cela pourra peut-être aider :

http://www.weirdog.com/blog/repository/images/resize-scale-max_19.jpeg
http://www.weirdog.com/blog/repository/images/resize-scale-min_20.jpeg
http://www.weirdog.com/blog/repository/images/resize-fixed-height_21.jpeg
http://www.weirdog.com/blog/repository/images/resize-fixed-width_22.jpeg
http://www.weirdog.com/blog/repository/images/resize-surface_23.jpeg
Modifié par Gofromiel (09 May 2008 - 17:52)

http://www.weirdog.com 
^
jeje1978
# 13 May 2008 - 12:37:09
Citer
17 Posts
bonjour,

je n'ai toujours pas trouver, quelqu'un peux t il m'aider, je m'en sors pas

merci beaucoup

bonne journée

jeje78

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 81.4 ms - Charte