IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extension jpg généré


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut Extension jpg généré
    Bonjour à tous,

    Je suis en train de développer avec l'aide d'un dev flash une mini-appli flash qui génère du jpg à la volée via php (pas encore optimisée)... http://www.buzzfactory.fr/2009/

    Mon problème vient du fait que le jpg généré a visiblement un souci d'extension ou de structure (il n'est reconnu par aucune appli).

    J'ai beau chercher et rechercher, je ne vois pas d'ou vient le pbm (je suis novice en php aussi),
    Quelqu'un aurait-il une piste ?
    Merci bcp toute aide éventuelle,

    Florent


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    $largeur = $_POST['largeur'];
    $hauteur = $_POST['hauteur'];
    $pixels = $_POST['pixels'];
     
     
    /*
    echo 'L*l*6 = '.$largeur*$hauteur*6;
    echo 'chaine= '.strlen($pixels);
    */
    $image = imagecreatetruecolor($largeur,$hauteur);
     
    for($y=0;$y<$hauteur;$y++){
    	for($x=0;$x<$largeur;$x++){
    		// position du début de la séquence RRVVBB pour le pixel en cours
    		$i =(($y*$largeur) + $x) * 6;
     
    		// RVB
    		$r = hexdec(substr($pixels, $i, 2));
    		$v = hexdec(substr($pixels, $i+2, 2));
    		$b = hexdec(substr($pixels, $i+4, 2));
     
    		// création de la couleur
    		$colorid = imagecolorallocate($image,$r,$v,$b);
    		// écriture de la couleur dans l'image
    		imagesetpixel($image,$x,$y,$colorid);
    	}
    }
    header("Content-type: image/jpeg");
    imagejpeg($image,"",100);
    imagedestroy($image);
     
     
    ?>

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour Florent,

    Ca devrait faire quoi comme image ?
    Pour le moment, ca donne une image toute noire, mais dont la structure est correcte.

    Gillou.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    En fait, les pixels flash sont récupérés d'ici http://www.buzzfactory.fr/2009/ et envoyés sur ce php.
    Cela me fait une capture (pas centrée pr l'instant) et génère une image.
    (bizarre, chez moi ça ne fait pas d'écran noir ?)

    Mon problème vient du fait que si on enregistre l'image sous, le jpg n'est pas correct... (image.php)
    Si on la fait glisser sur le bureau, elle prend l'extension jpg mais est illisible

  4. #4
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    ok.
    Peux tu nous donner un exemple de ce que tu récupères via $pixels.

    Gillou

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Voilà le code AS qui récupère les pixels (dsl il est un peu long)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    import flash.display.BitmapData;
    import flash.geom.Rectangle;
    import flash.geom.Point;
     
    import flash.geom.Matrix;
    import flash.geom.ColorTransform;
    import mx.utils.Delegate;
     
    btn2.onRelease = Delegate.create(this,export);
     
    function export() {
     
    	var lv:LoadVars = new LoadVars();
     
     
    	// dÈtermine la zone de pixels ‡ envoyer
    	lv.largeur = zone._width;
    	lv.hauteur = zone._height
     
     
    	var xmin = Math.floor(zone._x);
    	var ymin = Math.floor(zone._y);
     
    	// on crÈe un bitmap ‡ la bonne taille
    	var bitmap1:BitmapData = new BitmapData(800, 500);
    	bitmap1.draw(this, new Matrix(), new ColorTransform() , "normal", new Rectangle(0, 0, 800, 500), false);
     
    	var bitmap:BitmapData = new BitmapData(lv.largeur, lv.hauteur);
    	bitmap.copyPixels(bitmap1,new Rectangle(xmin,ymin,lv.largeur,lv.hauteur), new Point(0,0));
     
    	lv.pixels = "";
    	for(var y = 0; y<lv.hauteur; y++){
    		for(var x =0; x<lv.largeur; x++){
     
    			var hexa = bitmap.getPixel(x,y).toString(16);
     
    			switch(hexa.length){
    				case 5:
    					hexa = '0'+hexa;
    					break;
    				case 4:
    					hexa = '00'+hexa;
    					break;
    				case 3:
    					hexa = '000'+hexa;
    					break;
    				case 2:
    					hexa = '0000'+hexa;
    					break;
    				case 1:
    					hexa = '00000'+hexa;
    					break;
    			}
    			lv.pixels+=hexa;
    		}
    	}
     
    	lv.send("http://www.buzzfactory.fr/2009/createjpg.php", "_blank", "POST");
     
    };

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    En tt cas je viens de vérifier la capture semble fonctionner (du moins sur mac et firefox)...

    Par contre lors de l'enregister sous, il me propose : createjpg.php.html

Discussions similaires

  1. [Formulaire] Input file, voir uniquement extensions jpg
    Par Sayrus dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/07/2007, 11h12
  2. Différence entre les extensions '.JPG' et '.jpg'
    Par ecarbill dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 15h20
  3. [Upload] Changer une extension JPG en jpg
    Par svan1812 dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2007, 21h32
  4. [Blend beta 1][VS Extension WPF CTP 11/06] VS ne lit pas le code généré par Blend
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 09/12/2006, 17h50
  5. [Fichier] Verification de l'extension jpg
    Par Taz_8626 dans le forum Langage
    Réponses: 9
    Dernier message: 13/04/2006, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo