begin process at 2012 02 11 02:10:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > COMPARER DEUX IMAGES ET VOIR LEURS DIFFÉRENCES

COMPARER DEUX IMAGES ET VOIR LEURS DIFFÉRENCES


 Information sur la source

Note :
8,86 / 10 - par 7 personnes
8,86 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :comparer, images, stegano, analyser, différences Niveau :Débutant Date de création :26/10/2006 Date de mise à jour :31/10/2006 13:26:26 Vu / téléchargé :22 114 / 914

Auteur : franco_se

Ecrire un message privé
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
bonjour

Voici un petit script tres simple, qui permet de comparer deux images pixel par pixel, et qui génére deux images de resulat:
- la première indique par un gradiant de couleur la difference entre pixel ( plus 2 pixels sont eloigné, plus le gradient sera élevé)
- la deuzième affiche tous les pixels differents par un pixel noir, et les identiques par un blanc.

ce script est utile pour decripter une steganographie par exemple .... ou jouer au jeu des 7 erreurs lol

je l'ai codé rapidement, donc désolé s'il y a des erreurs de conventions

le zip contient le code présenté si dessous, et 2 images pour le tester

Source

  • <?php
  • $action = $_POST['action'];
  • //fonction pour le calcul du temps d'affichage
  • function getmicrotime(){
  • list($usec, $sec) = explode(" ",microtime());
  • return ((float)$usec + (float)$sec);
  • }
  • $debut = getmicrotime();
  • //generateur de chaine de caractere aleatoire, servant a l'attibution des nom des images
  • function alea_string($caract_max = "10"){
  • $chaine="";
  • $caract = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  • for ($i=0; $i < $caract_max; $i++) $chaine .= $caract[rand(0, count($caract)-1)];
  • return $chaine;
  • }
  • // fonction de comparaison
  • function comparaison_img($img1, $img2){
  • $im1 = ImageCreateFromPng($img1);
  • list($width_img1,$height_img1) = getimagesize($img1);
  • $im2 = ImageCreateFromPng($img2);
  • list($width_img2,$height_img2) = getimagesize($img2);
  • $width = ($width_img1 > $width_img2)?$width_img1:$width_img2;
  • $height = ($height_img1 > $height_img2)?$height_img1:$height_img2;
  • $image_resultat_1 = imagecreatetruecolor($width,$height);
  • $image_resultat_2 = imagecreatetruecolor($width,$height);
  • $diff_totales = 0;
  • for ($x=0;$x<$width;$x++) {
  • for ($y=0;$y<$height;$y++) {
  • $rgb_img1 = ImageColorAt($im1, $x, $y);
  • $r_img1 = ($rgb_img1 >> "16") & 0xFF;
  • $g_img1 = ($rgb_img1 >> "8") & 0xFF;
  • $b_img1 = $rgb_img1 & 0xFF;
  • $rgb_img2 = ImageColorAt($im2, $x, $y);
  • $r_img2 = ($rgb_img2 >> "16") & 0xFF;
  • $g_img2 = ($rgb_img2 >> "8") & 0xFF;
  • $b_img2 = $rgb_img2 & 0xFF;
  • $r = 255 - abs($r_img1 - $r_img2) ;
  • $g = 255 - abs($g_img1 - $g_img2) ;
  • $b = 255 - abs($b_img1 - $b_img2) ;
  • //resultat 1 : image par gradiant
  • $color_resultat_1 = imagecolorallocate($image_resultat_1,$r,$g,$b);
  • imagesetpixel($image_resultat_1, $x, $y, $color_resultat_1);
  • //resultat 2 : image N/B des différences
  • if($r_img1 != $r_img2 or $g_img1 != $g_img2 or $b_img1 != $b_img2) {
  • $color_resultat_2 = imagecolorallocate($image_resultat_2, "0", "0", "0");
  • $diff_totales++;
  • }else $color_resultat_2 = imagecolorallocate($image_resultat_2, "255", "255", "255");
  • imagesetpixel($image_resultat_2, $x, $y, $color_resultat_2);
  • }
  • }
  • // génération d'un nom pour les images de resultat
  • $nom_img_resultat = alea_string();
  • //repertoir de stockage des images de resultat:
  • $rep_img_result = "images/";
  • imagepng($image_resultat_1, $rep_img_result . $nom_img_resultat.'_1.png');
  • imagepng($image_resultat_2, $rep_img_result . $nom_img_resultat.'_2.png');
  • $return = array(
  • "resultat_1" => $rep_img_result . $nom_img_resultat.'_1.png',
  • "resultat_2" => $rep_img_result . $nom_img_resultat.'_2.png',
  • "diff" => $diff_totales
  • );
  • return $return;
  • }
  • //systeme d'upload
  • switch ($action){
  • case "upload":
  • // Repertoire cible
  • $target = "upload/";
  • // Taille max en octets du fichier
  • $max_size = "1000000";
  • // Largeur max de l'image en pixels
  • $width_max = "200";
  • // Hauteur max de l'image en pixels
  • $height_max = "200";
  • $extensions_ok = array("jpg","gif","png","jpeg");
  • $error_1 = 0;
  • $error_2 = 0;
  • $nom_fichier_enregister = alea_string();
  • for($nb_img = 1; $nb_img <= 2; $nb_img++){
  • ${'nom_file_' . $nb_img} = $_FILES['image_'.$nb_img]['name'];
  • ${'taille_' . $nb_img} = $_FILES['image_'.$nb_img]['size'];
  • ${'tmp_' . $nb_img} = $_FILES['image_'.$nb_img]['tmp_name'];
  • ${'chemin_' . $nb_img} = $target.$nom_fichier_enregister.'_'.$nb_img;
  • $extension = substr(${'nom_file_' . $nb_img},-3);
  • if(${'nom_file_' . $nb_img})
  • {
  • if(in_array(strtolower($extension),$extensions_ok))
  • {
  • $infos_img = getimagesize(${'tmp_' . $nb_img} );
  • if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && (${'taille_' . $nb_img} <= $max_size))
  • {
  • if(move_uploaded_file(${'tmp_' . $nb_img},${'chemin_' . $nb_img}))
  • {
  • echo '<p>Image '.$nb_img.' uploadée avec succès !</p>';
  • echo '<ul><li>Fichier : '.${'nom_file_' . $nb_img}.'</li>';
  • echo '<li>Taille : '.${'taille_' . $nb_img}.' Octets</li>';
  • echo '<li>Largeur : '.$infos_img['0'].' px</li>';
  • echo '<li>Hauteur : '.$infos_img['1'].' px</li></ul>';
  • } else {
  • echo '<p>Problème lors de l\'upload de l\'image '.$nb_img.' !</p>';
  • ${'error'.$nb_img} = 1;
  • }
  • } else {
  • echo '<p>Erreur dans les dimensions ou taille de l\'image '.$nb_img.'!</p>';
  • ${'error'.$nb_img} = 1;
  • }
  • }else {
  • echo '<p>Votre image '.$nb_img.' ne comporte pas une extension valide !</p>';
  • ${'error'.$nb_img} = 1;
  • }
  • } else {
  • echo '<p>Le champ du formulaire de l\image '.$nb_img.' est vide !</p>';
  • ${'error'.$nb_img} = 1;
  • }
  • }
  • if ($error_1 == 0 && $error_2 == 0) echo "<br /><form action=\"". $PHP_SELF ."\" method=\"post\" name=\"comparer\"><input name=\"action\" type=\"hidden\" value=\"compare\"><input name=\"img1\" type=\"hidden\" value=\"".$nom_file_1."\"><input name=\"img2\" type=\"hidden\" value=\"".$nom_file_2."\"><input name=\"\" type=\"submit\" value=\"Comparer les deux images\"></form><br />";
  • else echo "<br /><form action=\"". $PHP_SELF ."\" method=\"post\" name=\"error\"><input name=\"\" type=\"submit\" value=\"Une erreur est survenu durant le traitement d'une des images. Veuillez recommencer\"></form><br />";
  • break;
  • //appel de la fonction de comparaison
  • case "compare":
  • $comparaison_img1_img2 = comparaison_img($_POST['img1'], $_POST['img2']);
  • echo "<p>
  • Image d'origine 1 : <br />
  • <img src=\"".$_POST['img1']."\" /><br />
  • </p>
  • <hr>
  • <p>
  • Image d'origine 2 : <br />
  • <img src=\"".$_POST['img2']."\" /><br /><br />
  • </p>
  • <p>
  • <h3>Résultat d'analyse</h3>
  • <fieldset><legend>Resultat 1: Image par gradients de difference</legend>
  • <img src=\"".$comparaison_img1_img2['resultat_1']."\" />
  • </fieldset>
  • <fieldset><legend>Resultat 2: Image Noir et Blanc des différences</legend>
  • <img src=\"".$comparaison_img1_img2['resultat_2']."\"/>
  • </fieldset>
  • <br />
  • Différences comptabilisée: ".$comparaison_img1_img2['diff']."
  • </p>";
  • break;
  • //defaut, formulaire d'upload des images
  • default:
  • echo "<form enctype=\"multipart/form-data\" action=\"". $PHP_SELF ."\" method=\"POST\">
  • <input type=\"hidden\" name=\"action\" value=\"upload\">
  • <p>Envoyer l'image 1 :</p>
  • <input name=\"image_1\" type=\"file\">
  • <p>Envoyer l'image 2 :</p>
  • <input name=\"image_2\" type=\"file\"><br />
  • <input type=\"submit\" value=\"Uploader\">
  • </form>";
  • }
  • //affichage du temps de génération de la page
  • echo "<div align=\"center\">Page générée en ".round( getmicrotime() - $debut, 3) ." secondes</div>";
  • ?>
<?php

$action = $_POST['action'];

//fonction pour le calcul du temps d'affichage
function getmicrotime(){ 
    list($usec, $sec) = explode(" ",microtime()); 
    return ((float)$usec + (float)$sec); 
   }
$debut = getmicrotime();

//generateur de chaine de caractere aleatoire, servant a l'attibution des nom des images
function alea_string($caract_max = "10"){
$chaine="";
$caract = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

for ($i=0; $i < $caract_max; $i++) $chaine .= $caract[rand(0, count($caract)-1)];
return $chaine;
}

// fonction de comparaison
function comparaison_img($img1, $img2){

$im1 = ImageCreateFromPng($img1);
list($width_img1,$height_img1) = getimagesize($img1);

$im2 = ImageCreateFromPng($img2);
list($width_img2,$height_img2) = getimagesize($img2);


$width = ($width_img1 > $width_img2)?$width_img1:$width_img2;
$height = ($height_img1 > $height_img2)?$height_img1:$height_img2;

$image_resultat_1 = imagecreatetruecolor($width,$height);
$image_resultat_2 = imagecreatetruecolor($width,$height);

$diff_totales = 0;


for ($x=0;$x<$width;$x++) {
  for ($y=0;$y<$height;$y++) {

$rgb_img1 = ImageColorAt($im1, $x, $y);
$r_img1 = ($rgb_img1 >> "16") & 0xFF;
$g_img1 = ($rgb_img1 >> "8") & 0xFF;
$b_img1 = $rgb_img1 & 0xFF;


$rgb_img2 = ImageColorAt($im2, $x, $y);
$r_img2 = ($rgb_img2 >> "16") & 0xFF;
$g_img2 = ($rgb_img2 >> "8") & 0xFF;
$b_img2 = $rgb_img2 & 0xFF;


$r = 255 - abs($r_img1 - $r_img2) ;
$g = 255 - abs($g_img1 - $g_img2) ;
$b = 255 - abs($b_img1 - $b_img2) ;

//resultat 1 : image par gradiant

 $color_resultat_1 = imagecolorallocate($image_resultat_1,$r,$g,$b);
 imagesetpixel($image_resultat_1, $x, $y, $color_resultat_1);


//resultat 2 : image N/B des différences

if($r_img1 != $r_img2 or $g_img1 != $g_img2 or $b_img1 != $b_img2) {
$color_resultat_2 = imagecolorallocate($image_resultat_2, "0", "0", "0");
$diff_totales++;
}else $color_resultat_2 = imagecolorallocate($image_resultat_2, "255", "255", "255");

 imagesetpixel($image_resultat_2, $x, $y, $color_resultat_2);

  }
 }
  

// génération d'un nom pour les images de resultat
$nom_img_resultat = alea_string();

//repertoir de stockage des images de resultat:
$rep_img_result = "images/";
  
  
imagepng($image_resultat_1, $rep_img_result . $nom_img_resultat.'_1.png'); 
imagepng($image_resultat_2, $rep_img_result . $nom_img_resultat.'_2.png');

$return = array(
"resultat_1" => $rep_img_result . $nom_img_resultat.'_1.png',
"resultat_2" => $rep_img_result . $nom_img_resultat.'_2.png',
"diff" => $diff_totales
);

return $return;
}


//systeme d'upload
switch ($action){

	case "upload":
	
// Repertoire cible
$target = "upload/";  
// Taille max en octets du fichier
$max_size = "1000000";
// Largeur max de l'image en pixels
$width_max = "200";
// Hauteur max de l'image en pixels
$height_max = "200";

$extensions_ok = array("jpg","gif","png","jpeg");

$error_1 = 0;
$error_2 = 0;

$nom_fichier_enregister = alea_string();

for($nb_img = 1; $nb_img <= 2; $nb_img++){


${'nom_file_' . $nb_img}   = $_FILES['image_'.$nb_img]['name'];
${'taille_' . $nb_img}     = $_FILES['image_'.$nb_img]['size'];
${'tmp_' . $nb_img}        = $_FILES['image_'.$nb_img]['tmp_name'];
${'chemin_' . $nb_img}     = $target.$nom_fichier_enregister.'_'.$nb_img;

$extension  = substr(${'nom_file_' . $nb_img},-3); 


if(${'nom_file_' . $nb_img})
  {
    if(in_array(strtolower($extension),$extensions_ok))
    {
        $infos_img = getimagesize(${'tmp_' . $nb_img} );

        if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && (${'taille_' . $nb_img} <= $max_size))
        {
            if(move_uploaded_file(${'tmp_' . $nb_img},${'chemin_' . $nb_img}))
            {

                echo '<p>Image  '.$nb_img.' uploadée avec succès !</p>';
                echo '<ul><li>Fichier : '.${'nom_file_' . $nb_img}.'</li>';
                echo '<li>Taille : '.${'taille_' . $nb_img}.' Octets</li>';
                echo '<li>Largeur : '.$infos_img['0'].' px</li>';
                echo '<li>Hauteur : '.$infos_img['1'].' px</li></ul>';
               
            } else { 
			echo '<p>Problème lors de l\'upload de l\'image '.$nb_img.' !</p>';
			${'error'.$nb_img} = 1;
			}
        } else {
		echo '<p>Erreur dans les dimensions ou taille de l\'image  '.$nb_img.'!</p>';
		${'error'.$nb_img} = 1;
		}
	}else {
	echo '<p>Votre image  '.$nb_img.' ne comporte pas une extension valide !</p>';
	${'error'.$nb_img} = 1;
	}
		
   } else {
   echo '<p>Le champ du formulaire de l\image '.$nb_img.' est vide !</p>';
   ${'error'.$nb_img} = 1;
   
}
}


if ($error_1 == 0 && $error_2 == 0) echo "<br /><form action=\"". $PHP_SELF ."\" method=\"post\" name=\"comparer\"><input name=\"action\" type=\"hidden\" value=\"compare\"><input name=\"img1\" type=\"hidden\" value=\"".$nom_file_1."\"><input name=\"img2\" type=\"hidden\" value=\"".$nom_file_2."\"><input name=\"\" type=\"submit\" value=\"Comparer les deux images\"></form><br />";
else echo "<br /><form action=\"". $PHP_SELF ."\" method=\"post\" name=\"error\"><input name=\"\" type=\"submit\" value=\"Une erreur est survenu durant le traitement d'une des images. Veuillez recommencer\"></form><br />";

break;

//appel de la fonction de comparaison
	case "compare":
$comparaison_img1_img2 = comparaison_img($_POST['img1'], $_POST['img2']);

echo "<p>
Image d'origine 1 : <br />
<img src=\"".$_POST['img1']."\" /><br />
</p>
<hr>
<p>
Image d'origine 2 : <br />
<img src=\"".$_POST['img2']."\" /><br /><br />
</p>
<p>

<h3>Résultat d'analyse</h3>

<fieldset><legend>Resultat 1: Image par gradients de difference</legend>
<img src=\"".$comparaison_img1_img2['resultat_1']."\" />
</fieldset>

<fieldset><legend>Resultat 2: Image Noir et Blanc des différences</legend>
<img src=\"".$comparaison_img1_img2['resultat_2']."\"/>
</fieldset>
<br />
Différences comptabilisée: ".$comparaison_img1_img2['diff']."


</p>";


break;


//defaut, formulaire d'upload des images

default:

echo "<form enctype=\"multipart/form-data\" action=\"". $PHP_SELF ."\" method=\"POST\">
<input type=\"hidden\" name=\"action\" value=\"upload\">
<p>Envoyer l'image 1 :</p>
<input name=\"image_1\" type=\"file\">
<p>Envoyer l'image 2 :</p>
<input name=\"image_2\" type=\"file\"><br />

<input type=\"submit\" value=\"Uploader\">
</form>";

}

//affichage du temps de génération de la page
echo "<div align=\"center\">Page générée en ".round( getmicrotime() - $debut, 3) ." secondes</div>";

?> 


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 octobre 2006 13:57:50 :
mis a dispo d'un zip
26 octobre 2006 14:09:10 :
annotation du script
31 octobre 2006 13:26:26 :
ajout de nouvelles fonctions ( upload des images, generateur de noms ..... )

 Sources du même auteur

CLASSE DATABASE POUR CONNECTION ET MODIFICATION D'UNE BDD MY...
CHIFFRE DE VIGENÈRE
GÉNÉRATEUR D'UNE CHAINE ALEATOIRE FACILEMENT MEMORISABLE
COMPARAISON DE 2 CHAINES , ET RETOUR DU POURCENTAGE DE RESSE...
DEFILEMENT D'IMAGES POUR ALBUMS PHOTOS

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS) par begueradj
Source avec Zip CLASSE DE REDIMENSIONNEMENT D'IMAGES PHP par beejeridou
Source avec Zip CODE POUR HÉBERGEUR D'IMAGE par bonhommecrea
Source avec Zip Source avec une capture MY.PICS : TRAITEMENT D'IMAGES NON DESTRUCTIF par inwebo
Source avec Zip FUNCTION IMAGE SIMPLE ET ARRAY par astro53

Commentaires et avis

Commentaire de manouille le 27/10/2006 10:20:00

ca a l'air simpa.
Est ce que tu crois que ce script pourrait servir de base (je dis bien de base) à la création d'un moteur de recherche d'image.
Ex On envoie une image et on cherche d'autre images ressemblant a celle qu'on a posté.

Commentaire de franco_se le 27/10/2006 11:38:38

Je doute avec cette methode, car elle verfifie les difference entre 2 pixels d'une meme coordonnée. Ainsi, dans l'exemple du zip, j'ai pris 2 images, dons l'une été décalée d'un pixel a gauche. Bien qu'identiques, le script a comptabilisé plus de 5000 pixels differents.
pour un moteur de recherche d'image, je pense qu'il faudrais pouvoir "superposer" les images, les centrer de manière a comptabiliser le moins de differences, puis analyser les 2 images .....
a moins d'utiliser un "systeme de mire", un point, ayant une valeur RGB precise, et de l'ituliser pour centrer les 2 images .... mais la, la moindre variation de sa valeur le ferait passé inapercu ...... sauf si l'on cherche dans une gamme de valeurs (par ex, R à +-5, G+-5 et B+-5 ) ......

faudrais y reflechir ........

Commentaire de manouille le 27/10/2006 13:42:40

oui effectivment je me suis un avancé, de plus je n'ai pas pris le temps de regarder ton script, mais j'ai bien aimé l'idée.

Commentaire de malalam le 27/10/2006 14:27:51 administrateur CS

Hello,

j'aime bien, c'est très sympa, et simple.
Avec une fonction, ça eut été mieux :-)

Commentaire de jean84 le 29/10/2006 00:57:30

Salut !

C'est impressionant d'arriver a un tel resultat avec si peu de code ! Franchement rien que pour sa bravo !
Par contre je n'ai pas compris a quoi tu faisait reference quand tu parle de gradiant ? Kesako ?

Merci !!

Commentaire de franco_se le 29/10/2006 01:43:02

en fait, les couleurs de l'image en gradiant correspondent a la "distence" entre les pixel des 2 images
par ex:
tu as un pixel de coordonné X, Y sur l'image 1, et qui a pour valeur RGB: 27 34 255
et as un pixel de meme coordonné X, Y sur l'image 2, ac  pour valeur RGB: 16 12 125

le pixel sur l'image par gradiant correspondra a la difference des valeurs des 2 pixel, et aura donc pour valeur 11 22 130

il arrive que cette difference soit minime et que l'on ai 255 255 254, cad qlq chose de quasiment blanc, et c'est là qu'intervient l'image en N/B, qui affcihe ttes les differences

Commentaire de jean84 le 29/10/2006 21:08:00

Ah oki merci ! Je comprend mieux maintenant... en tout cas encore bravo, je te mets 8 (comme l'a dit Malalam, le top aurait ete une fonction ;-) )

@++ et bonne continuation !!

Commentaire de franco_se le 29/10/2006 22:14:01

mais il est facile d'en faire une fonction ( un function en haut et un return en bas ) lol

Commentaire de jean84 le 30/10/2006 18:38:34

C'est vrai ;-) mais c'est tellement mieux d'avoir un code clefs en main ^^ (bon je sais j'abuse mais quand meme ...)

@++

Commentaire de malalam le 31/10/2006 09:22:15 administrateur CS

Question à deux balles : côté rapidité, ça donne quoi ? C'est plutôt lent comme traitement, ou plutôt rapide ?

Commentaire de franco_se le 31/10/2006 13:22:25

testé en local:
temps minimum: 0,12 sec
temps maximin: 0,573 sec

vu qu'on demande du clé en main, j'ai refait:
- mise en forme du systeme de comparaison en fonction ( comparaison_img($img1, $img2) )
- ajout d'un systeme d'upload des images
- ajout d'un generateur de chaine aléatoire ( pour gerener des mons de fichiers uniques)
- ajout d'une function getmicrotime ( pour malalam lol )

alors jean84, heureux ? lol

Commentaire de malalam le 31/10/2006 13:59:25 administrateur CS

Sur des images pesant...?
En fait je vais tester un truc quand j'aurai le temps, je profite de ton code pour faire un test que je voulais faire depuis un moment, et n'ai pas fait par flemme lol.

Commentaire de jean84 le 31/10/2006 18:29:10

"alors jean84, heureux ? lol"
> Comme un coque en patte ^^ Merci ;-)

Commentaire de Mastronic le 13/11/2006 18:12:50

De mon coté, en local: Page générée en 250ms pour une image 193x73 pixels.

pour infos, tu peux utilisé getimagesize() pour testé le type d'image (jpg, png....)  pour etre certains du format de l'image.

list($width, $height, $type, $image_bal) = getimagesize($img);

Si non, quelle application peut t'on donné avec ce type de programme?

Commentaire de moimoi45 le 03/02/2010 15:43:13 8/10

Bonjour Franco_se
j ai le message suivant
Fatal error: Call to undefined function ImageCreateFromPng() in -------index.php on line 24
Les images se télécharge correctement mais analyse point ??
Quel le problème?
Merci pour la réponse



Commentaire de UT4 le 14/04/2011 11:36:23 10/10

très bon script, beau travail

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

peut t-on comparer 2 images en php [ par djomsroset ] sltj'ai une préocupation ,peut t-on comparer 2 images en php ou en un autre langage pour voir si elle sont identiques. lister un dossier puis comparer a une bdd [ par jphilippev ] bonjour je cherche a recuperer tout les fichiers contenus dans un dossieret les comparer a la colonne correspondante de ma bddvoila jarrive bien a "ex htaccess & images [ par dgdg ] Salut à tous,j'ai petit problème avec mon htaccess :-(mon fichier htaccess :RewriteEngine OnRewriteCond %{HTTP_REFERER} !^http://127.0.0.1/.*$ [NC]Lor Hardcore headers :O [ par sbool ] header("Content-type: image/jpeg" );Hello ;)J'ai codé toute la soirée pour rien apparemment, mais j'aimerais que quelqu'un me le confirme ou me démont images dans textarea [ par joebuz ] Bonjour, je cherche une source, ou une aide pour un formulaire pour un forum.je m'explique, en gros je cherche à savoir comment on fai Affichage de plusieurs images [ par Euskalor ] Bonjour !J'ai plusieurs images dans ma base de donnée ( avec le champ LONGBLOB ) et je souhaiterai afficher toutes les images.Pour l'instant j'utilise J'aimerai heberger des images afin d'utiliser moins de place : problème script [ par lucivole ] Saloute! voila je ne suis pas très douée en php, je m'y interesse depuis vraiment peu de temps. Afin de ne pas gaspiller de la place sur mon site j'au extraire une image d'un champ blob [ par thiebaut35 ] Dans une base mysql, j'ai des jolies images que je souhaite afficher où je le veux sur des pages html.Ma base fonctionne bien je peux mettre supprimer Je recherche un code spécifique pour des fichiers images [ par chouk57 ] Bonjour,En pleine refonte de mon portfolio, je cherche un code permettant, lors d'un rollover sur une image, de voir cette image en question en plus g images php serveur linux [ par nemetos ] bonjour,je voudrais savoir comment afficher un texte en ttf dans une image avec un serveur linux ?Ces fonctions fonctionnent très bien sur windows ima


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,513 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales