Salut salut.
Je travaille sur un systeme de partage photo sur mon site. J'ai une classe qui traite les images et ayant une fonction permettant de creer des miniatures. mon probleme, cette fonction creer les miniatures avec des dimensions qui dependent de la dimension originale de l'image, ce que j'aimerais obtenir c'est des miniatures avec des dimensions fixes peut importe les dimensions qu'avait l'image au depart.
Un petit apercu de mon code:
<?php
class ImageTreatement{
private $img_source;
public function __construct($img_source){
$this->img_source = $img_source;
}
public function thumb($new_img_with, $dest){
//Take the picture
$image_mime = getimagesize($this->img_source);
//Look if his mime is correct
if($image_mime['mime'] == 'image/jpeg' OR $image_mime['mime'] == 'image/jpg' OR $image_mime['mime'] == 'image/png'){
//Take the picture's format
$img_extension = strtolower( substr(strrchr($_FILES['file_upload']['name'], '.'), 1) );
//If the format is jpeg, cretae it with imagjpeg
if($img_extension == 'jpg' OR $img_extension == 'jpeg'){
$new_image = imagecreatefromjpeg($this->img_source);
}
//else retae it with imagpng
else{
$new_image = imagecreatefrompng($this->img_source);
}
//The size of the original image
$old_image_size = getimagesize($this->img_source);
//New dimension(largeur)
$new_image_width= $new_img_with;
//New height (hauteur)
$new_image_height = (($old_image_size[1] * (($new_image_width)/$old_image_size[0])));
//We create the new image
$new_image_create = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresampled($new_image_create, $new_image, 0, 0, 0, 0, $new_image_width, $new_image_height, $old_image_size[0], $old_image_size[1]);
imagedestroy($new_image);
//if jpeg, save it in a jpeg file
if($img_extension == 'jpg' OR $img_extension == 'jpeg'){
imagejpeg($new_image_create, $dest , 100);
}
//else in a png file
else{
imagepng($new_image_create, $dest , 100);
}
//var_dump($old_image_size); die();
}
}
}
J'aimerais que toute les miniatures fassent 518 par 500 px, j'obtiens toujours la largeur voulu, mais je vois pas comment obtenir la hauteur de l'image(500). quand je l'obtiens, l'image se deforme, ce qui n'est pas cool.
Help plzzz!!!!!
Merci
@Steeve VERDIEU Faire une recherche c'est trop compliqué pour toi ? Moi en moins de 10 secondes j'ai trouvé une solution sur ce site
Tu vois la petite loupe en haut à droite ? Bah quand tu passe ta souris dessus, tu as un barre de recherche qui apparaît. Et crois le ou non, quand tu tape des mots dans la barre de recherche, ça va lancer une recherche sur le site ! DINGUE !!!! Je sais, c'est magique, mais faut l'utiliser tant que c'est gratuit !
Et ta réponse : http://www.grafikart.fr/search?q=images
Je sais, mais Je voulais le faire en GD pure @elhebert sans utiliser d'autres extensions....
Intervention Image est une librairie et non une extension PHP, tu n'auras donc absolument rien à modifier au niveau de ton environnement.
Bonsoir.
Il est préférable que tu gardes un ratio, sinon tu vas dénaturer les images d'origine.
Tu n'auras peut-être pas la hauteur exacte que tu souhaites, mais tu auras au moins des images valables.
Ou alors, tu imposes des tailles prédéfinies à tes utilisateurs, mais je ne crois pas que ça va les amuser de devoir prendre des photos par exemple aux dimensions exactes que tu leur demandes.
Non, je ne compte pas imposer des valeurs a mes utilisateurs.
S'il n'y a pas moyen d'ameliorer mon script, je vais le laisser tel qu'il est.
Ce que je voudrais ameliorer dans mon script, c'est dire a php: tu crees une miniature de ma photo qui aura 518px de large, et si la hauteur de la miniature depasse une certaine valeur, tu enleves le surplus et tu affiches le reste.
Ensuite, en cliquant sur la miniature, l'utilisateur pourra voir l'image entiere qui est l'image d'origine.
Salut,
Une petite cherche sur le site et tu aurais trouvé ceci: http://www.grafikart.fr/tutoriels/php/intervention-image-375/
Ce tuto est récent et très intéressant. Et je pense que cela résolvera ton problème ;)
Et tu as encore une autre classe PHP utilisable, et très simple : https://github.com/claviska/SimpleImage
Je sais, mais Je voulais le faire en GD pure @elhebert sans utiliser d'autres extensions....
Ok, mon systeme de partage marche bien, pour l'instant je passe a autre chose....Je reviens sur le traitement des images juste apres....Merci de vos interventions.