Création miniature

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 : Création miniature

Re: RESOLUT: Création miniature

par FuZZyLine » 25 nov. 2009, 10:07

Salut,
J'ai trouvé mon bonheur voici le code
<?php
// Le fichier
$filename = "image.jpg";

// Définition de la largeur et de la hauteur maximale
$width = 400;
$height = 400;

// Content type
//header('Content-type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Affichage
imagejpeg($image_p, null, 100);

?>
Merci pour votre aide
Bon, eh eh eh ;)

@+ ;)

PS:
En passant, FuZZyLine, tu nous donnera un petit exemple de code hein.
Car Algorithme de tracé de segment de Bresenham dans ton lien en donnant juste un lien Wikypedia
http://fr.wikipedia.org/wiki/Algorithme ... _Bresenham
-> moi je n'y comprends rien personnellement (enfin surtout la transposition en php)
(a moins que sibelius comprenne lui )
Tu me gaves l'ami, je t'ai déja dis que tu devrais plus tôt postuler chez Carambar comme pigiste
à écrire leurs blagues. Ignore moi comme j'essaie de le faire. Je t'en remercie, par avance,
passe une bonne journée !

RESOLUT: Création miniature

par sibelius » 24 nov. 2009, 21:56

J'ai trouvé mon bonheur voici le code
<?php
// Le fichier
$filename = "image.jpg";

// Définition de la largeur et de la hauteur maximale
$width = 400;
$height = 400;

// Content type
//header('Content-type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Affichage
imagejpeg($image_p, null, 100);

?>
Merci pour votre aide

Re: Création miniature

par Dr@ke » 24 nov. 2009, 21:51

Oui en effet,il faut mettre des valeurs.

J'avais édité mon Post:

Donc tu devrais modifier cette ligne dans un premier temps:
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
Par:
$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
Sinon le code qui redimensionne, c'est cette ligne:
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
Donc il te suffira de modifier les deux valeurs:
$largeur_destination et $hauteur_destination

En passant, FuZZyLine, tu nous donnera un petit exemple de code hein.

Car Algorithme de tracé de segment de Bresenham dans ton lien en donnant juste un lien Wikypedia
http://fr.wikipedia.org/wiki/Algorithme ... _Bresenham

-> moi je n'y comprends rien personnellement (enfin surtout la transposition en php)
(a moins que sibelius comprenne lui :wink: )

Re: Création miniature

par FuZZyLine » 24 nov. 2009, 21:36

Salut,
Je croie que je me suis mal exprimé.
J'aimerai que le redimensionnement soit proportionnelle. J'ai vu quelque part que si on renseigne uniquement l'une des deux valeurs l'autre est calculer automatiquement en fonction des proportion de l'image source.
Si je met aucune valeur dans imagecreatetruecolor(); il n'y aura aucun redimensionnement non? J'ai essai avec une seule valeur mais ça ne fonctionne pas je reçois un message d'erreur.
Ce que tu cherches est le ratio.
Et pour ceci, tu as cela: php-avance/ratio-images-miniature-t249288.html

@+ ;)

Re: Création miniature

par sibelius » 24 nov. 2009, 21:32

Je croie que je me suis mal exprimé.

J'aimerai que le redimensionnement soit proportionnelle. J'ai vu quelque part que si on renseigne uniquement l'une des deux valeurs l'autre est calculer automatiquement en fonction des proportion de l'image source.

Si je met aucune valeur dans imagecreatetruecolor(); il n'y aura aucun redimensionnement non? J'ai essai avec une seule valeur mais ça ne fonctionne pas je reçois un message d'erreur.

Re: Création miniature

par Dr@ke » 24 nov. 2009, 20:27

Salut,
Bien ne met aucune dimension:
imagecreatetruecolor();
Ou bien les dimensions que tu désires, non?

Si cela fonctionne comme tu le désires, marque résolut.

[EDIT]
Peux-tu essayer ceci, cela devrait fonctionner:
imagecreatetruecolor($largeur_destination, $hauteur_destination);
:wink:

Re: Création miniature

par sibelius » 24 nov. 2009, 20:12

Bonjour

Je reprend votre script et j'aimerais savoir si il est possible de faire en sorte que l'image miniature garde ses proportion? Oui car dans le cas actuel elles se déforme du à la commande imagecreatetruecolor(200, 150);

Merci

sibelius

Re: Création miniature

par polinux » 13 nov. 2009, 19:42

excusez moi j'ai raté la fonction qui fait apparaitre le code correctement donc rebelote.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta name="description" content="l'école primaire saint laurent dans les monts du lyonnais à chamousset dans le rhone" />
<meta name="keywords" content="l'ecole privée saint laurent de l'enseignement catholique offre un enseignement rigoureux et de qualité dans une ambiance familiale" />
<link rel="stylesheet" media="screen" type="text/css" title="gssl" href="gssl.css" />
<title>Ecole Privée Saint Laurent</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$source = imagecreatefromjpeg("carr1.jpg"); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, 'mini_carr1.jpg');

?>
<img src="mini_carr1.jpg" alt="visite de la carrière" />
</body>
</html>

Re: Création miniature

par polinux » 03 nov. 2009, 21:05

voici mon code

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <meta name="description" content="l'école primaire saint laurent dans les monts du lyonnais à chamousset dans le rhone" /> <meta name="keywords" content="l'ecole privée saint laurent de l'enseignement catholique offre un enseignement rigoureux et de qualité dans une ambiance familiale" /> <link rel="stylesheet" media="screen" type="text/css" title="gssl" href="gssl.css" /> <title>Ecole Privée Saint Laurent</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php $source = imagecreatefromjpeg("carr1.jpg"); // La photo est la source $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_destination = imagesx($destination); $hauteur_destination = imagesy($destination); // On crée la miniature imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // On enregistre la miniature sous le nom "mini_couchersoleil.jpg" imagejpeg($destination, 'mini_carr1.jpg'); ?> <img src="mini_carr1.jpg" alt="visite de la carrière" /> </body> </html>
Je pense que les deux fichiers ont le même chemin

Re: Création miniature

par pilldesign » 03 nov. 2009, 01:01

Ce script permet de créer une image dans un dossier destination à partir d'une image dans un dossier source...

Une fois votre nouvelle image créée, il suffit de l'appeler...

Mettez vous votre nouvelle image dans un dossier différent du dossier source ?

Si c'est le cas, il faut bien sur mettre comme chemin d'appel dans votre page html le dossier destination...

Tiens, je crois que je vais faire un tuto la-dessus... Je vois souvent des problèmes de ce type...

N'hésitez pas à poster une partie de votre code pour qu'on puisse vous aider de manière plus efficace

Re: Création miniature

par polinux » 03 nov. 2009, 00:50

j'utilise le même script, mais impossible d'afficher l'image,
comment faire apparaitre l'image dans une page html ?

Re: Création miniature

par fab » 02 nov. 2009, 21:25

Et c'est quoi qui te bloque? tu remplaces "test.jpg;" par le path jusqu'à ton fichier uploadé et ça devrait marcher ( faut aussi que tu changes le nom de ta miniature à la dernier ligne )

Création miniature

par Romuald632 » 02 nov. 2009, 18:34

Bonjour,
J'ai vraiment besoin de votre aide pour redimensionner une image en même temps que je la "upload".
Mon formulaire est OK pour l'image, mais je ne sais pas créer une miniature.
Pouvez-vous m'aider
Voici mon code permettant de récupérer l'image
#Enregistrement de la date et heure
$date  = date("ymd");
$heure = date("His");
 
#Ajout de la date et l'heure au nom de fichier
$nom= $date."-".$heure;
	echo '<div class="nbr_photo">';
	echo "Référence de votre image : $nom";
    echo  '<br />';
 
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = '../upload/'; // dossier où sera déplacé le fichier
 
    $tmp_file = $_FILES['fichier']['tmp_name'];
 
// on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];
 
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
    {
        exit("L'extension de votre fichier n'est pas acceptée !");
    }
	
	$nom .= ".".pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
 
    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];
 
    if( !move_uploaded_file($tmp_file, $content_dir . $nom) )
    {
    exit("Impossible de copier le fichier dans $content_dir");
    }
	echo '<div class="nbr_photo">';
	echo 'Votre fichier a été transféré avec succès';
	echo '</div>';
}
J'ai bien trouvé un tuto tel que ci-dessous, mais je ne sais pas quoi en faire
<?php
$source = imagecreatefromjpeg("test.jpg");
$destination = imagecreatetruecolor(50, 50);
 
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
 
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
 
imagejpeg($destination, 'mini_test.jpg');
?>