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

JavaScript Discussion :

créer une image à partir d'un tableau de pixels


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 28
    Points
    28
    Par défaut créer une image à partir d'un tableau de pixels
    Bonjour,

    Comme je l'ai décrit ici : http://www.developpez.net/forums/sho...98#post2724798 j'ai une page web qui contient une appli flash qui permet de créer des dessins. L'utilisateur peut enregistrer chaque dessin.
    Cela appel un script php qui crée l'image Jpeg, l'enregistre, et crée un enreg dans une Bdd.

    J'ai une contrainte. La meme page que l'appli flash doit afficher des vignettes des dessins créés

    Je peux depuis flash AS3 appeller directement un script JS.

    L'idée est donc de continuer à appeler le script php pour enregistrer les dessins et créer un enreg dans la BDD et d'appeler un script JS sur la meme page que l'appli flash pour créer la vignette

    Donc comment faire en JS pour créer une image à partir d'un tableau de pixels ?

    Par exemple, voila le script PHP qui crée l'image à partir du tableau de pixels (le dessin est en noir et blanc et n'a pas de transparence. On récupère les valeurs hexa en tableau string) !
    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
     
    <?php
    $imgChaine = explode(",", $_POST['image_flash']);
    $largeur = $_POST['img_largeur'];
    $hauteur = $_POST['img_hauteur']; 
    $image = imagecreatetruecolor ($largeur ,$hauteur );
    imagefill($image, 0, 0, 0xFFFFFF);
    $i=0;
    for($x=0; $x<=$largeur; $x++){
    	for($y=0; $y<=$hauteur; $y++){
    		$value=$imgChaine[$i];
    		if($value != ""){
    			$hex = $value;
    			while(strlen($hex) < 6){
    				$hex = "0" . $hex;
    			}
    			// convert value from HEX to RGB
    			$r = hexdec(substr($hex, 0, 2));
    			$g = hexdec(substr($hex, 2, 2));
    			$b = hexdec(substr($hex, 4, 2));
    			$test = imagecolorallocate($image, $r, $g, $b);
    			imagesetpixel($image, $x, $y, $test);		
    		}
    		$i++;
    	}
    }
    header( "Content-type: image/jpeg" );
    imagejpeg($image, "", 90);
    imagedestroy($image);
    ?>
    L'idée serait donc de juste transformer ce script en JS !

    Ou alors si vous avez une meilleure idée, je reste ouvert à toutes propositions (par ex : dans l'autre post je voulais utiliser ajax pour appeler un script php qui lise la BDD et renvoie le code pour afficher l'image) !

    Si l'un d'entre vous est assez gentil pour me tranformer ce code php en JS ce serait top (ou au moins me dire comment faire) !

    Par avance merci

    pascal

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    en php tu peux créer une image à partir d'une autre... en sélectionnant tout ou partie de l'image d'origine et en spécifiant les dimensions de la nouvelle image...

    en conclusion pour toi, tu peux en deux lignes php généré une vignette de ton image...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    oui merci je sais

    (imagecopyresized(); par exemple )

    Je donnais le code php car je veux faire pareille mais en JS

    le besoin est le suivant :

    J'ai une appli flash ecrite en AS3 qui appelle un script javascript en lui passant un tableau de pixels (comme le php). je veux que le script JS crée l'image !

    Pourquoi ?

    Parceque le script javascript est dans la meme page que mon appli flash est qu'ainsi je peux afficher une vignette venant de flash sans RAFRAICHIR l'image

    Pascal

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    je ne connais pas flash... mais si tu peux faire un appel javascript pour afficher une image sans reload... peu importe d'où vient ton image ??

    donc ta fonction javascript peut etre un appel Ajax, ta vignette étant générée par ton script PHP, et il n'y a pas de reload !

    est-ce que ca répond à ta problématique ?

Discussions similaires

  1. Créer une image à partir d'un tableau EXCEL
    Par ARobel20 dans le forum Développement Windows
    Réponses: 0
    Dernier message: 04/04/2014, 17h30
  2. Afficher une image à partir d'un tableau de pixels
    Par hajerboug dans le forum NetBeans
    Réponses: 0
    Dernier message: 02/04/2012, 21h51
  3. Créer une image à partir d'un tableau de bytes
    Par rockley dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 21/12/2011, 13h59
  4. Créer une image à partir d'un fenêtre
    Par dword2add dans le forum Windows
    Réponses: 6
    Dernier message: 19/09/2006, 12h46
  5. Créer une image à partir d'une URL ?
    Par DrySs dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2006, 09h39

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