Compression d'image du site...

41 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

je souhaite aléger mes images bien lourdes !!

je ne souhaite pas de principe 1 produit et deux images 1 petite et 1 grande !!

est-ce possible d'interger ce code ?? si oui où ?? et comment ??

function miniature($image,$width=100,$height=75,$rep='./mini/'){ 

	$sz = getimagesize($image); 

	$destw = $sz[0]/2; 

	$desth = $sz[1]/2; 

	if($destw<$width or $desth<$height){$destw=$sz[0]; $desth=$sz[1];} 

	$imgsrc = imagecreatefromjpeg($image); 

	$imgtmp =  imagecreatetruecolor($width,$height); 

	imagecopyresampled($imgtmp,$imgsrc,0,0,0,0,$destw,$desth,$sz[0],$sz[1]); 

	imagejpeg($imgtmp,$rep.$image,75);

ou une autre methode meilleurs !!??

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il ne faut pas que gd soit implémenté pour cette fonction ?

Sinon c'est une idée.

WIlly

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

gd est implentée aujourdh'ui par defaut dans php depuis la version 4.3 je crois.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

voila mon code modifié:

Dans lib/fonctions/fonctions.php:

/*Fonction d'upload de fichiers */

function upload($the_file) {


global $the_path;


		$the_file_tmp = $the_file['tmp_name'];


		$the_file_name = $the_file['name'];


		$error = validate_upload($the_file); 	// Teste la validit&eacute; du document


		$extension = substr($the_file_name, strrpos($the_file_name, "."));


		$dateheure = strftime("%d%m%y_%H%M%S");


		$mdp = MDP();


		$the_new_file_name = $dateheure . "_www.demoniak-motors.com_" .nompropre($the_file_name);


		if ($error) {

				echo $error;

				return "";

		} else { # cool, we can continue

				if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) {

						//form("\n<b>Quelques choses ne fonctionnent pas : v&eacute;rifier le chemin de la variable $path et les permissions du r&eacute;pertoire /upload (il doit &ecirc;tre en CHMOD777</b>");

				} else {	

			chmod($the_path . $the_new_file_name, 0777);


/*Redim de l'image a 500px de large et suppression de l'originale*/

			miniature($the_new_file_name,500,$the_path);

			@unlink($the_path.$the_new_file_name);


						return "p_".$the_new_file_name;

				}

		}

} 


/*Fonction d'upload de fichiers */

function upload_petite($the_file) {


global $the_path;


		$the_file_tmp = $the_file['tmp_name'];


		$the_file_name = $the_file['name'];


		$error = validate_upload($the_file); 	// Teste la validit&eacute; du document


		$extension = substr($the_file_name, strrpos($the_file_name, "."));


		$dateheure = strftime("%d%m%y_%H%M%S");


		$mdp = MDP();


		$the_new_file_name = $dateheure . "_www.demoniak-motors.com_" .nompropre($the_file_name);


		if ($error) {

				echo $error;

				return "";

		} else { # cool, we can continue

				if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) {

						//form("\n<b>Quelques choses ne fonctionnent pas : v&eacute;rifier le chemin de la variable $path et les permissions du r&eacute;pertoire /upload (il doit &ecirc;tre en CHMOD777</b>");

				} else {	

			chmod($the_path . $the_new_file_name, 0777);


/*Redim de l'image a 500px de large et suppression de l'originale*/

			miniature($the_new_file_name,150,$the_path);

			@unlink($the_path.$the_new_file_name);


						return "p_".$the_new_file_name;

				}

		}

} 


function miniature($image,$newwidth=150,$rep='./upload/'){ 

global $the_path;


	$type=strtolower(substr($image, -3, 3));

	$sz = getimagesize($the_path.$image); 

	$width = $sz[0]; 

	$height = $sz[1]; 

	//si l'image est moins large que ce qu'on désire, on la laisse à sa taille

	if ($width < $newwidth) { $newwidth=$width;}


	$newheight = $newwidth*$height/$width;


	$thumb = imagecreatetruecolor($newwidth, $newheight);

	if ($type=='jpg'){

		$source = imagecreatefromjpeg($the_path.$image);

	}

	elseif($type=='gif'){

		$source = imagecreatefromgif($the_path.$image);

	}


	// Redimensionnement

	imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);


	if ($type=='jpg'){

		imagejpeg($thumb,$rep."p_".$image,75);

	} 

	elseif($type=='gif'){

		imagegif($thumb,$rep."p_".$image,75);

	}

}
Et dans administrer/produits.php, j'ai remplacé:
upload($_FILES['image1'])
Par:
upload_petite($_FILES['image1'])

Afin que l'image 1 soit la plus petite possible, ici 150 px de large.

Pour les autres images j'ais mis 500px de large.

Voila, pensez a sauvegarder vos pages avant de les modifier.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci pour ta réponse willy...

la modif que tu a fait compresse bien les images ?

si c'est ça je test ça bientôt...

il faut modifier aussi :

if (!empty($_FILES['image1']['name'])) {$img1 = upload2($_FILES['image1'],$_POST['nom'],"1");}

par :

if (!empty($_FILES['image1']['name'])) {$img1 = upload_petite($_FILES['image1'],$_POST['nom'],"1");}

Merci et à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Regarde mon premier site en signature.

Les images 1 sont toutes a 150 px de large et les autres sont a 500 maxi maintenant (les nouvelles images, les anciennes je les ferraient à la main)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

image plus petite d'accord...

mais compressé ??

regarde sur mon site les images sont toutes à la même dimensions suivant catégories...

mais pas compréssés !!

je souhaite juste compressé mais pour la taille je ne sais pas comment faire...

le script le permet ??

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En effet tes images s'affichent toutes à la même taille, mais en faite elles sont plus grandes et sont redimensionnées pour apparaitre plus petites et toutes similaires au niveau taille.

Mon script redimenssionne les images dès leur chargement par l'administrateur. Comme ca ells prennent moins de place, donc la bande passante utilisée est moindre et la page est plus rapide à afficher.

Par contre i lne marche que pour les futures insertions de produits ou catégories.

Pour la MAJ des images existantes, j'ai fait un autre srcipt qui récupère toutes les images 1 et qui les redimenssione, pareil pour les images des catégories.

Ce sont les images les plus chargées et donc celles qui consomment le plus de bande passante.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci de ta réponse...

l'image final ( grandes ) de mes produits je souhaite les garder...

pour mieux expliquer quand tu va sur l'accueil les images dispo sont en grand mais redimentionnées !!

donc le poid de la page d'acceuil est très lourd !!

ce que je veux c'est laissé la même image, ton script mermet de la redimentionné et du coup la compressé !!

mais je ne souhaite pas qui me mofifie la taille de l'image d'origine...

c'est bien ça on d'accord ??

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci de ta réponse...

l'image final ( grandes ) de mes produits je souhaite les garder...

pour mieux expliquer quand tu va sur l'accueil les images dispo sont en grand mais redimentionnées !!

donc le poid de la page d'acceuil est très lourd !!

Oui c'est ce que je t'ais dit plus haut :)

ce que je veux c'est laissé la même image, ton script mermet de la redimentionné et du coup la compressé !!

mais je ne souhaite pas qui me mofifie la taille de l'image d'origine...

c'est bien ça on d'accord ??

Mais pour cela tu as image1 et image2.

Image 1 est affichée en petit et image 2 et le zoom.

Avec mon script TOUTES les images 1 sont enregistrées avec une largeur de 150px si cette largeur est supérieure à 150 PX à l'origine, sinon la largeur d'origine est conservée.

Pour l'image 2 et les autres c'est 500 px maxi.

Si tu veux des images plus légères, soit tu les réencodes en moins bonne qualité, soit tu créés des images 1 plus petites avec une image plus grande en image 2, je ne vois pas d'autre solution.

Fait déja un test, regarde le poids d'une image lourde.

Ouvre la avec paint et réengeristre la sans rien changé, elle sera peut etre plus légère peut etre.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

merci...

je test ça bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir,

J'aimerais adapter cette solution pour les images des catégories et sous catégories.

Pourrais tu me dire dans quel fichier est l'ajout des images?

Merci d'avance

Guillaume

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

pour le moment je n'ai pas eu le temps de regardé !!

je compte le faire j'espère dans la semaine et je donne les explications...

clair et détaillées pour les débutants comme moi ;)

pense à m'envoyer le code de la compression de tiny

pour que j'explique comment faire dans le bon sujet SVP

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

willy ton script n'a pas marché...

il me donne une erreur...

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il marche chez moi.

Dites l'erreur et là où ca plante.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Merci de ta réponse...

je te croi..

il faut dire que j'ai pas mal modifié les codes...

il me donne le code erreur de l'image qui ne se mat pas en place...

mais y pensant ça riesque de ne pas marcher du premier coup...

étant donné les modifs...

si tu veux je peut t'envoyer les code par MP...

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

MP si tu veux

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

ok je t''envoi ça ce soir...

sinon tu utilise quoi comme script pour tes petites annonces ?

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

je pense que je vais tenter ton script willy...

mais j'ai des questions...

est-ce qu'il faut que je revois toutes les images de mon site ??

est-ce que les images sont déformés ?

si je souhaite mettre différents tailles dans différents lieux comme dans les exemples ça ce passe comment ?

- http://www.negoce-land.com/achat/produit_details.php?id=77

- http://www.negoce-land.com/achat/index.php?catid=17

- http://www.negoce-land.com/

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

je pense que je vais tenter ton script willy...

mais j'ai des questions...

est-ce qu'il faut que je revois toutes les images de mon site ??

est-ce que les images sont déformés ?

si je souhaite mettre différents tailles dans différents lieux comme dans les exemples ça ce passe comment ?

- http://www.negoce-land.com/achat/produit_details.php?id=77

- http://www.negoce-land.com/achat/index.php?catid=17

- http://www.negoce-land.com/

à bientôt...

Bonjour,

alors mon script redimensionne les images sans les déformer à l'upload.

Donc si t veux que tes images déja présentes soient redimensionnées, il faut faire un programme qui les chargera et les redimensionnera. J'en avais fait un pour mes images 1, et un autre pour les autres images (image 1 stockée plus petite).

Pour les tailles d'image, perso j'ai pris 2 tailles de stockage:

- image 1 en tout petit

- les autres dans la résolution maximale affichée sur le site pour les images

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Merci de ta réponse willy...

mon PB c'est que j'ai 4 à 6 tailles d'images à définir !! donc 4 à 6 code page à mettre...

sans compter le nombre de photo déjà présente sur mes sites...

c'est pour celà que ma recherche était plutôt miniaturisation avec tailles différentes via css ou code...

j'ai trouvé des programmes en thimbnail mais j'ai pas réussit à les installés ...

donc ton script me semble bien !!

sinon il faut que je cré pour chaque image un script, que pense tu ??

c'est surtout pour l'image 1 dans un premier temps !!

détails :

- image 1 des catégories

- image 1 des produits

- image 1 du catalog

- image 1 des listes produits

- image 1 des produis associés

- image 1 des produits qui défilent

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Comme j'ai dit perso je n'ais que 2 tailles.

Une petite pour la miniature de l'image 1 et une autre taille.

Je pense vraiment que 2 tailles au niveau du stockage de l'image c'est bien.

Apres à l'affichage tu peux les réduire facilement.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

comme tu a constaté j'ai mis plusieurs tailles...

je reste donc là dessus...

car je suis entrain de faire un design incluant l'influance des images et de leurs tailles !

c'est donc un ensemble que j e ne peux plus modifié !!

en plus bientôt je met le forum, et les petits annonce...

et ça va encore plus ce compliquer !!

bon en considérant dans un premier temps que je mette l'image 1 en 3 tailles:

taille image 1 = image 1 des produits = image 1 du catalog = image 1 des listes produits = image 1 des produits qui défilent

autre taille image 1 = image 1 des catégories

autre taille image 1 = image 1 des produis associés

je suis obliger de renomer les noms d'images ??!! pour faire la différence...

ce qu'il m'interesse dans ton code c'est la partie redimensionner !!

car en ce moment j'impose une taille ce qui déforme mes images !!

j'ai vu qu'il est possible de mettre le redimensioner sans utiliser l'upload

est-ce que c'est pas plus pratique de mettre les portions de code en changeant les tailles dans mon cas..

plutôt que de s'amuser à changer tous les nom d'image ??

je vais tout de même tenter ton code sur un site de test pour voir, il est possible que je me fasse de fausses idées

sur la complication de la chose !!

Merci encore de ton aide Willy !

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

je voudrais eclaircir un truc.

Tu veux :

- que tes images prennent moins de place sur ton serveur ? Donc les redimensionner pour qu'elle soient plus légères, que tes pages soient plus fluides et consomment moins de bande passante

OU

- que tes images soient présentées au client sous un format particulier (qu'elles entrent dans un cadre de X par Y pixels )

???

Ma solution consiste à rendre les images plus petites à l'upload, ainsi on ne se soucis plus de la taille de l'image qu'on charge sur le site, elle est redimensionnée automatiquement en tout petit pour l'image 1 et en plus gros pour les autres images.

C'est pour un soucis de place et de bande passante que j'ai fait cela.

Mais j'ai l'impression que ton soucis n'est pas le même que le mien...

Tu voudrais juste afficher tes images dans une taille particuliere enfin plutot dans plusieurs tailles. C'est pour ca que tu parles de deformation d'images je pense.

Dis nous ce que tu veux.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

tu a bien raison de poser cette question !!

je vais tacher d'être clair !!

tous mes clients ou future clients n'ont pas le Haut débit ( surtout en afrique ...)

encore moins facile quand on a des images lourdes !!

ce que je cherche à faire :

rendre ce site plus rapide

car actuelement 80% des images de ce site sont grandes et lourdes...

mais elles sont redimentionnée via des : height="XX"

donc pas top et idéal déformation d'image !!

voilà !!

qu'en pense tu Willy ??

à bientôt...

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping