18041 sujets
Questions générales et questions de débutants
Le truc c'est que j'ai une plateforme de download sur un site web ou pleins de gens peuvent downloader des images et tout.
Ces images peuvent ensuite être intégrer au site, mais si elles sont trop large, ça "détruis" le design. C'est pourquoi j'aimerais limiter la largeur des images avec la propriété max-width, qui fonctionne très bien avec Firefox mais pas avec IE (tu m'étonnes.)
Si c'est pas possible, il n'y aurait pas un autre moyen? (PHP, javascript ou autre?)
Merci.
Ces images peuvent ensuite être intégrer au site, mais si elles sont trop large, ça "détruis" le design. C'est pourquoi j'aimerais limiter la largeur des images avec la propriété max-width, qui fonctionne très bien avec Firefox mais pas avec IE (tu m'étonnes.)
Si c'est pas possible, il n'y aurait pas un autre moyen? (PHP, javascript ou autre?)
Merci.
Bonjour,
J'aime bien : http://www.siteduzero.com/tuto-3-4-0-un-site-dynamique-avec-php.html ça aide bien à demarrer.
J'aime bien : http://www.siteduzero.com/tuto-3-4-0-un-site-dynamique-avec-php.html ça aide bien à demarrer.
Bonjour,
En fait tu as plusieurs possibilités, soit tu réduits ton image à l'upload par le visiteur et tu l'affiches ainsi à la demande, soit tu l'uploades tel quel et tu la réduits à l'affichage... Les 2 solutions ont des avantages et des inconvenients.
Quoiqu'il en soit se sont des scripts php assez complexes (http://www.phpcs.com/recherche.aspx?r=Redimensionner+image&tr=source) et nécessitant quelques connaissances en php !!
Pour des utilisations moins sophistiquées et assez limitées au niveau qualité on peut se contenter d'utiliser le css pour fixer le witdh et le height par php. Il ne faut pas s'attendre à des miracles de compression, exactement ce que l'on obtiendrait de cette manière en manuel et sans bien entendu de perte de "poids" de l'image.
Par exemple ce bout de code pour te donner une idée.
Ps: j'ai remplacé les images par des blocs...
En fait tu as plusieurs possibilités, soit tu réduits ton image à l'upload par le visiteur et tu l'affiches ainsi à la demande, soit tu l'uploades tel quel et tu la réduits à l'affichage... Les 2 solutions ont des avantages et des inconvenients.
Quoiqu'il en soit se sont des scripts php assez complexes (http://www.phpcs.com/recherche.aspx?r=Redimensionner+image&tr=source) et nécessitant quelques connaissances en php !!
Pour des utilisations moins sophistiquées et assez limitées au niveau qualité on peut se contenter d'utiliser le css pour fixer le witdh et le height par php. Il ne faut pas s'attendre à des miracles de compression, exactement ce que l'on obtiendrait de cette manière en manuel et sans bien entendu de perte de "poids" de l'image.
Par exemple ce bout de code pour te donner une idée.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<style>
#conteneur{
width: 800px;
overflow: hidden;
border: 1px solid black;
margin: auto;
}
#image1{
margin: 10px;
background: green;
float: left;
}
#image2{
margin: 10px;
background: blue;
float: left;
}
#image3{
margin: 10px;
background: cyan;
float: left;
}
#image4{
margin: 10px;
background: yellow;
float: left;
}
</style>
</head>
<body>
<?php // largeurs et hauteurs pour une largeur fixe de 75px
$l1 = 100; $l2 = 200; $l3 = 60; $l4 = 50; //données largeurs de départ
$h1 = 200; $h2 = 150; $h3 = 175; $h4 = 50; //données hauteurs de départ
$lr = 75; // largeur réduite fixe
$hr1 = (75/$l1)*$h1; $hr2 = (75/$l2)*$h2; $hr3 = (75/$l3)*$h3; $hr4 = (75/$l4)*$h4; // hauteurs proportionnelles
?>
<div id="conteneur">
<div id="image1" style="<?php echo 'width: '.$l1.'px; height: '.$h1.'px'?>">
</div>
<div id="image2" style="<?php echo 'width: '.$l2.'px; height: '.$h2.'px'?>">
</div>
<div id="image3" style="<?php echo 'width: '.$l3.'px; height: '.$h3.'px'?>">
</div>
<div id="image4" style="<?php echo 'width: '.$l4.'px; height: '.$h4.'px'?>">
</div>
<p style=" clear: both; text-align: center"> Boites représentant les images en dimensions normales</p>
<hr/>
<div id="image1" style="width: 75px; <?php echo 'height: '.$hr1.'px'?>">
</div>
<div id="image2" style="width: 75px; <?php echo 'height: '.$hr2.'px'?>">
</div>
<div id="image3" style="width: 75px; <?php echo 'height: '.$hr3.'px'?>">
</div>
<div id="image4" style="width: 75px; <?php echo 'height: '.$hr4.'px'?>">
</div>
<p style=" clear: both; text-align: center"> Boites représentant les images avec une largeur fixe de 75px et une hauteur proportionnelle à la hauteur d'origine afin de ne pas déformer l'éventuelle image</p>
</div>
</body>
</html>
Ps: j'ai remplacé les images par des blocs...
Tiens, si tu veux du script php qui redimmensionne et renomme tes image (c'est un script de base, rebricolé qui permet de réduire la largeur, tout en gardant le ratio de l'image (hauteur/largeur)
Formulaire html
Code php
Modifié par Super_baloo8 (09 Jan 2007 - 02:52)
Formulaire html
<form enctype="multipart/form-data" action="?tof=oui&id=<?=$_GET['id']?>&login=<?=$_GET['login']?>" method="post">
<label for="photo">Photo :</label><input type="file" name="fichier" id="fichier" size="15" />
<p><input class="bouton" type="submit" value="Ajouter une photo !" name="upload" /></p>
</form>
Code php
if(!empty($_GET['tof']))
{
if(!empty($_POST['upload']))
{
$content_dir = '/homepages/***/equipement/maj/'; //ton dossier ou tu souhaite stocker tes photo
if (is_uploaded_file($_FILES["fichier"]["tmp_name"])) {
$nomphoto = strtolower($_FILES["fichier"]["name"]);
$extension=strrchr($nomphoto,'.');
$ext=stristr($nomphoto,'.');
if($ext == '.php'){
die("Les script en .php ne sont pas autorisés.");
}
elseif ($ext == '.exe'){
die("Les fichiers en .exe ne sont pas autorisés.");
}
elseif ($ext == '.movie'){
die("Les fichiers en .movie ne sont pas autorisés.");
}
elseif ($ext == '.mpeg'){
die("Les fichiers en .mpeg ne sont pas autorisés.");
}
elseif ($ext == '.htm'){
die("Les fichiers en .htm ne sont pas autorisés.");
}
elseif ($ext == '.pst'){
die("Les fichiers en .pst ne sont pas autorisés.");
}
elseif ($ext == '.asp'){
die("Les fichiers en .asp ne sont pas autorisés.");
}
elseif ($ext == '.init'){
die("Les fichiers en .init ne sont pas autorisés.");
}
elseif ($ext == '.js'){
die("Les fichiers en .js ne sont pas autorisés.");
}
else{
$cheminPhoto = $_GET['id'] . $extension; //ici je renomme la photo
rename($_FILES["fichier"]["tmp_name"], $cheminPhoto);
move_uploaded_file($nomphoto, $content_dir);
$chmod = chmod($cheminPhoto,0644);
list($width, $height) = getimagesize("".$cheminPhoto."");
if($width > '480') //si la largeur de l'image dépasse 480px alors je la redimmensionne
{
if($ext == '.jpg')
{
$source = imagecreatefromjpeg("".$cheminPhoto."");
}
if($ext == '.png')
{
$source = imagecreatefrompng("".$cheminPhoto."");
}
if($ext == '.bmp')
{
$source = imagecreatefrombmp("".$cheminPhoto."");
}
if($ext == '.gif')
{
$source = imagecreatefromgif("".$cheminPhoto."");
}
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = 480; // largeur a definir
$hauteur_destination = (($largeur_destination * $hauteur_source) / $largeur_source);
$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination);
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
if($ext == '.jpg')
{
imagejpeg($destination, $cheminPhoto);
}
if($ext == '.png')
{
imagepng($destination, $cheminPhoto);
}
if($ext == '.bmp')
{
imagebmp($destination, $cheminPhoto);
}
if($ext == '.gif')
{
imagegif($destination, $cheminPhoto);
}
}
Modifié par Super_baloo8 (09 Jan 2007 - 02:52)