upload + copy + redimensionnement = moche :)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload + copy + redimensionnement = moche :)

Re: upload + copy + redimensionnement = moche :)

par djtec » 16 janv. 2010, 11:11

Et aussi pour la fonction imagejpeg() tu peux mettre un 3ème argument qui est la qualité (compris entre 0 et 100).

Re: upload + copy + redimensionnement = moche :)

par graffx » 16 janv. 2010, 10:44

Salut a tous, on m' a conseillé de mettre imagecopyresampled au lieu de imagecopyresized et une qualité bien acceptable est au rendez-vous, si ce botu peut servir a quelqu' un, merci d' avori repondu en totu cas :)

Re: upload + copy + redimensionnement = moche :)

par jojo1000 » 16 janv. 2010, 10:35

je ne suis pas un spécialiste de ce genre de choses mais il existe des fichiers images qui sont très commpressés et donc sur lesquels le redimmensionnement est fortement déconseillé!

upload + copy + redimensionnement = moche :)

par graffx » 16 janv. 2010, 01:38

Salut a tous!!!

J' ai un petit souci, je me lance un peu dans l' upload et surtout les petites fonctions qui vont a coté comme copy createtruecolor et encore d' autres.


Mon projet est simple et il fonctionne sur le point technique:

1 - je choisis une image a uploader
2 - avant l' upload, je copie l' image dans le dossier "articles/miniatures"
3 - je redimensionne de sa taille originale a une taille "miniature"
4 - maintenant que c' es tcopié et redimensionné j' upload l' originale dans le dossier "articles"

Il y a un gros souci sur la qualité, je ne sais pas pourquoi , c' est super moche, et j' ai beau chercher, ca depasse maintenant mes competences. Je sais que mon code est pas beau, mais je suis debutant et bon, ca fonctionne :)

Que pourrai je faire pour ne pas perdre la qualité de la miniature, ou alors j' ai commis une erreur?

Merci d' avance :/
J' ai bien espacé pour que vous compreniez.
<?php


			//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	 }
     copy($_FILES['photo1']['tmp_name'], $dossier_m . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
	 
?>

















<?php
$file = '../images/articles/miniatures/'.$fichier.'' ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png

$x = 100;

$y = 100; # Taille en pixel de l'image redimensionnée

$size = getimagesize($file);

if ( $size) {
echo 'Image en cours de redimensionnement...
';

if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagejpeg($img_mini,$file );

}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagepng($img_mini,$file );

}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagegif($img_mini,$file );

}
echo 'Image redimensionnée !
';
}
?> 





















<?php


			//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	 }
     move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
	 
?>