Rogner des photos en PHP !
Fermé
floflo55
Messages postés
221
Date d'inscription
mardi 21 août 2012
Statut
Membre
Dernière intervention
21 août 2014
-
4 juin 2014 à 20:16
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 5 juin 2014 à 21:37
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 5 juin 2014 à 21:37
A voir également:
- Rogner des photos en PHP !
- Comment partager des photos - Guide
- Mes photos google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Partager des photos avec google - Guide
- Doublons photos - Guide
4 réponses
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
4 juin 2014 à 20:25
4 juin 2014 à 20:25
'lut, t'as quoi à ta disposition? GD, ImageMagick?
Regarde ici:
http://stackoverflow.com/questions/14799311/resize-and-crop-image-into-square-with-white-background-using-gd
http://stackoverflow.com/questions/14799311/resize-and-crop-image-into-square-with-white-background-using-gd
Hugo69009
Messages postés
13
Date d'inscription
mercredi 6 novembre 2013
Statut
Membre
Dernière intervention
7 juin 2014
7
5 juin 2014 à 20:00
5 juin 2014 à 20:00
Bonjour,
tout d'abord tu peux utiliser la prog en poo en php !
tu aura besoin d' :
un fichier class en php (la poo),
un formulaire,
du php procédural sera nécessaire,
un dossier pour déplacer les images grandeur nature,
un autre pour les images crops !
tout d'abord créer un fichier : lenomClass.php
et colle ceci :
le code pour redimensionner :
<?php
class Img {
static public function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100) {
$nom = substr($nom,0,-4);
$dimension = getimagesize($img);
if(substr(strtolower($img),-4)==".jpg") {
$image = imagecreatefromjpeg($img);
}
else if(substr(strtolower($img),-4)==".png") {
$image = imagecreatefrompng($img);
}
else if(substr(strtolower($img),-4)==".gif") {
$image = imagecreatefromgif($img);
}
else {
return false;
}
$miniature = imagecreatetruecolor($mlargeur,$mhauteur);
if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1]) {
$dimY = $mhauteur;
$dimX = $mhauteur*$dimension[0]/$dimension[1];
$decalX = -($dimX-$mlargeur)/2;
$decalY = 0;
}
if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]) {
$dimX = $mlargeur;
$dimY = $mlargeur*$dimension[1]/$dimension[0];
$decalY = -($dimY-$mhauteur)/2;
$decalX=0;
}
if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]) {
$dimX = $mlargeur;
$dimY = $mhauteur;
$decalX = 0;
$decalY = 0;
}
imagecopyresampled($miniature, $image, $decalX, $decalY, 0, 0, $dimX, $dimY, $dimension[0], $dimension[1]);
imagejpeg($miniature, $chemin . "/" . $nom . ".jpg", 90);
return true;
}
}
Ensuite créer un dossier : "galerie" par exemple et à l'intérieur de ce dossier créer un dossier miniature (par exemple tu peux les nommer autrement (se sont mes conventions à moi)).
il faut une page php pour inclure ton formulaire et charger ta class php :
page en php :
<?php
if (!empty($_FILES)) {
require_once "Lefichierclass.php";
if(isset($_FILES['img']) && !empty($_FILES['img'])) {
$ds = DIRECTORY_SEPARATOR; //les slash antislash
$cd = __DIR__ . $ds; //les directory ex : ../
$img = $_FILES['img'];
$extensions = strtolower(substr($img['name'] , -3));
$allowedExtensions = ["jpg" , 'png' , 'gif' , 'jpeg']; // les extensions permisent !
if (in_array($extensions , $allowedExtensions)) {
move_uploaded_file($img['tmp_name'], $cd . ".." . $ds . "" . $ds . $img['name']); // /!\ ici on récupère que 'name' et non tmp_name
if(!Img::creerMin($cd . ".." . $ds . "tondossierpourplacerlimageréel" . $ds . $img['name'], $cd . ".." . $ds . "tondossierpourplacerlimageréel" . $ds . "le dossier des miniatures", $img['name'] , 400, 224)) {
// Sur la ligne du dessus on appel la classe creerMin et à la fin on redimensionne l'immage par les tailles vouluent !
$erreur = "Erreur interne. Veuillez réessayer. Si le problème persiste veuillez contacter un administrateur.";
}
}
else {
$erreur = "Votre fichier n'est pas une image ! Les extensions permisent sont : png, jpg et gif ! Réessayer ou contactez un administrateur si l'erreur persiste !";
}
}
}
?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link rel="stylesheet" href="css/style.css">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<?php
if (isset($erreur)) {
echo "$erreur";
}
?> //indiquer une erreur si il y en a une
<form method="post" action="pourmoicettememepage.php" enctype="multipart/form-data">
<input type="file" name="img">
<input type="submit" value="envoyer">
</form>
<?php
$dossier = "../galerie/miniature";
$dir = opendir($dossier);
while ($file = readdir($dir)) {
$allowedExtensions = array("jpg" , 'png' , 'gif' , 'jpeg');
$extensions = strtolower(substr($file, -3 ));
if (in_array($extensions , $allowedExtensions)) {
?>
<img src="../le dossier image réel/le dossier image miniature/<?php echo $file; //les images ?>" />
<?php
}
}
?> //afficher les images miniaturisées
</body>
</html>
tout d'abord tu peux utiliser la prog en poo en php !
tu aura besoin d' :
un fichier class en php (la poo),
un formulaire,
du php procédural sera nécessaire,
un dossier pour déplacer les images grandeur nature,
un autre pour les images crops !
tout d'abord créer un fichier : lenomClass.php
et colle ceci :
le code pour redimensionner :
<?php
class Img {
static public function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100) {
$nom = substr($nom,0,-4);
$dimension = getimagesize($img);
if(substr(strtolower($img),-4)==".jpg") {
$image = imagecreatefromjpeg($img);
}
else if(substr(strtolower($img),-4)==".png") {
$image = imagecreatefrompng($img);
}
else if(substr(strtolower($img),-4)==".gif") {
$image = imagecreatefromgif($img);
}
else {
return false;
}
$miniature = imagecreatetruecolor($mlargeur,$mhauteur);
if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1]) {
$dimY = $mhauteur;
$dimX = $mhauteur*$dimension[0]/$dimension[1];
$decalX = -($dimX-$mlargeur)/2;
$decalY = 0;
}
if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]) {
$dimX = $mlargeur;
$dimY = $mlargeur*$dimension[1]/$dimension[0];
$decalY = -($dimY-$mhauteur)/2;
$decalX=0;
}
if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]) {
$dimX = $mlargeur;
$dimY = $mhauteur;
$decalX = 0;
$decalY = 0;
}
imagecopyresampled($miniature, $image, $decalX, $decalY, 0, 0, $dimX, $dimY, $dimension[0], $dimension[1]);
imagejpeg($miniature, $chemin . "/" . $nom . ".jpg", 90);
return true;
}
}
Ensuite créer un dossier : "galerie" par exemple et à l'intérieur de ce dossier créer un dossier miniature (par exemple tu peux les nommer autrement (se sont mes conventions à moi)).
il faut une page php pour inclure ton formulaire et charger ta class php :
page en php :
<?php
if (!empty($_FILES)) {
require_once "Lefichierclass.php";
if(isset($_FILES['img']) && !empty($_FILES['img'])) {
$ds = DIRECTORY_SEPARATOR; //les slash antislash
$cd = __DIR__ . $ds; //les directory ex : ../
$img = $_FILES['img'];
$extensions = strtolower(substr($img['name'] , -3));
$allowedExtensions = ["jpg" , 'png' , 'gif' , 'jpeg']; // les extensions permisent !
if (in_array($extensions , $allowedExtensions)) {
move_uploaded_file($img['tmp_name'], $cd . ".." . $ds . "" . $ds . $img['name']); // /!\ ici on récupère que 'name' et non tmp_name
if(!Img::creerMin($cd . ".." . $ds . "tondossierpourplacerlimageréel" . $ds . $img['name'], $cd . ".." . $ds . "tondossierpourplacerlimageréel" . $ds . "le dossier des miniatures", $img['name'] , 400, 224)) {
// Sur la ligne du dessus on appel la classe creerMin et à la fin on redimensionne l'immage par les tailles vouluent !
$erreur = "Erreur interne. Veuillez réessayer. Si le problème persiste veuillez contacter un administrateur.";
}
}
else {
$erreur = "Votre fichier n'est pas une image ! Les extensions permisent sont : png, jpg et gif ! Réessayer ou contactez un administrateur si l'erreur persiste !";
}
}
}
?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link rel="stylesheet" href="css/style.css">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<?php
if (isset($erreur)) {
echo "$erreur";
}
?> //indiquer une erreur si il y en a une
<form method="post" action="pourmoicettememepage.php" enctype="multipart/form-data">
<input type="file" name="img">
<input type="submit" value="envoyer">
</form>
<?php
$dossier = "../galerie/miniature";
$dir = opendir($dossier);
while ($file = readdir($dir)) {
$allowedExtensions = array("jpg" , 'png' , 'gif' , 'jpeg');
$extensions = strtolower(substr($file, -3 ));
if (in_array($extensions , $allowedExtensions)) {
?>
<img src="../le dossier image réel/le dossier image miniature/<?php echo $file; //les images ?>" />
<?php
}
}
?> //afficher les images miniaturisées
</body>
</html>
Hugo69009
Messages postés
13
Date d'inscription
mercredi 6 novembre 2013
Statut
Membre
Dernière intervention
7 juin 2014
7
5 juin 2014 à 20:01
5 juin 2014 à 20:01
je sais que s'est un peu le fouillit donc si tu comprends pas trop trop va voir les vidéos de www.grafikart.fr et cherche galerie d'images en php ! ^^
Nhay
Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
126
5 juin 2014 à 21:37
5 juin 2014 à 21:37
Si tu n'a ni GD ni imageMagick, le plus simple c'est de la faire en CSS, avec un overflow hidden pour cacher, et du JS pour le centrer.
4 juin 2014 à 20:33
4 juin 2014 à 20:48
Pas testé mais ça devrait marcher.
4 juin 2014 à 21:34
PS: Je crois que j'ai trouvé la liste des extensions php que j'ai actuellement:
Archive_Tar 1.3.11
Cache_Lite 1.7.15
Config 1.10.12
Console_Getopt 1.3.1
DB 1.7.14
DB_DataObject 1.11.2
DB_NestedSet 1.4.1
Date 1.4.7
File 1.4.1
File_CSV
File_Util
HTML_AJAX
HTML_Common 1.2.5
HTML_Common2
HTML_Javascript
HTML_QuickForm
HTML_QuickForm2
HTML_QuickForm_Controller 1.0.10
HTML_Template_Flexy 1.3.12
Image_Text 0.7.0
Log 1.12.7
MDB2 2.5.0b5
MDB2_Driver_mysql 1.4.1
Mail 1.2.0
Mail_Mime 1.8.8
Math_BigInteger 1.0.2
Net_DNS 1.0.7
Net_DNS2 1.3.2
Net_SMTP 1.6.2
Net_Socket 1.0.14
Net_URL 1.0.15
Net_URL2 2.0.5
Net_UserAgent_Detect 2.5.2
Numbers_Words 0.16.4
PEAR 1.9.4
Pager 2.4.8
RVSeagullMod 1.0.1
Structures_Graph 1.0.4
Text_CAPTCHA 0.5.0
Text_Figlet 1.0.2
Text_Password 1.1.1
Translation2 2.0.4
Validate 0.8.5
XML_Parser 1.3.4
XML_RPC 1.5.5
XML_Util 1.2.1
4 juin 2014 à 22:33
5 juin 2014 à 15:34
Sur quel genre de serveur est hébergé ton site ?