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

Flash Pascal Discussion :

Idée sur BitmapData


Sujet :

Flash Pascal

  1. #1
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut Idée sur BitmapData
    Ci-joint sur le thème du getpixel, une autre variante qui va me servir pour illustrer la correction d'un exercice sur la numérisation de l'information :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    program numerisation_de_l_information;
     
    uses
      Flash8,URealmovie;
     
    {$FRAME_WIDTH   500}
    {$FRAME_HEIGHT  550}
    {$FRAME_RATE 32}
    {$BACKGROUND $dcdcdc}
     
     const frame_width=500;
           frame_height=550;
    Type
     Smiley=class(Realmovie)
      mybmp : BitmapData;
      Field:TextField;
      Font:TextFormat;
      constructor create;
      procedure onMouseMove;
      procedure draw;
     end;
     
    Function GetBvalue(coul:integer):integer;
    begin
     result :=coul Mod 256;
    end;
     
    Function GetGvalue(coul:integer):integer;
    begin
     result :=floor((Coul Mod 65536)/256);
    end;
     
    Function GetRvalue(coul:integer):integer;
    begin
     result :=Floor(Coul/65536);
    end;
     
     constructor Smiley.Create;
     begin
      inherited create(nil,'schema',1);
      setsize(frame_width,frame_height,0,0,10,11);
      draw;
      mybmp := BitmapData.Create(frame_width+1,frame_height+1); //obligé de le dimensionner avec un pixel supplémentaire pour voir toutes les lignes ?
      mybmp.draw(self);//On remplit le bitmap avec le contenu de smiley
      clear;//pour éviter deux couches de dessin une dans le movie et l'autre dans le bmp
      attachBitmap(mybmp,0,'',false);
      Font:=TextFormat.Create( 'Arial',16,$000000,True,False,False,'center');
      field:=TextField.Create(self,'codeRGB',1,0,0,200,40);
      Field.setNewTextFormat(Font);
     end;
     
    Procedure Smiley.onMouseMove;
    var R,V,B:integer;
        rgb:number;
    begin
     rgb:=mybmp.GetPixel(_xmouse,_ymouse);
     R:=GetRValue(floor(rgb));
     V:=GetGValue(floor(rgb));
     B:=GetBValue(floor(rgb));
     Field.text:='( '+inttostr(R)+' , '+inttostr(V)+' , '+inttostr(B)+' )';
     Field._x:=_xmouse-60;  //avec modif de TextField _x et_y en number !
     Field._y:=_ymouse-40;
    end;
     
    procedure Smiley.draw;
    var i:integer;
    begin
     beginFill($ffff00);
     Rrectangle(3,1,7,2);
     Rrectangle(1,3,2,8);
     Rrectangle(8,3,9,8);
     Rrectangle(3,9,7,10);
     RRectangle(2,2,3,3);
     RRectangle(2,8,3,9);
     RRectangle(7,2,8,3);
     RRectangle(7,8,8,9);
     EndFill();
     beginFill($000000);
     RRectangle(3,4,4,5);
     RRectangle(4,3,6,4);
     RRectangle(6,4,7,5);
     endFill();
     beginFill($0088FF);
     RRectangle(3,6,4,7);
     RRectangle(6,6,7,7);
     EndFill();
     linestyle(1,$000000);
     for i:=0 to 10 do Rline(i,0,i,11);
     for i:=0 to 11 do  Rline(0,i,10,i);
     linestyle(3,$FF0000);
     RRectangle(6,4,9,7);
    end;
     
    begin
     Smiley.create;
     stage.scaleMode :='noScale'; //on n'est pas en vectoriel...pour éviter les surprises dans le navigateur
    end.
    En fait ma question : comment faire pour réaliser la même chose en vectoriel ?
    Je pensais ne pas remplir mon bitmapdata et utiliser sa propriété transparent pour pouvoir l'incruster sur mon dessin dans le movie ; ce qui me permettrait de récupérer le getpixel et ainsi faire la même chose en restant en vectoriel.
    Est-ce que ça marcherait ?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    transparent à true dans le create de bitmapdata, ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     constructor Smiley.Create;
     begin
      inherited create(nil,'schema',1);
      setsize(frame_width,frame_height,0,0,10,11);
      draw;
      mybmp := BitmapData.Create(frame_width+1,frame_height+1,true); //true ici pour transparent
      attachBitmap(mybmp,0,'',false);
      Font:=TextFormat.Create( 'Arial',16,$000000,True,False,False,'center');
      field:=TextField.Create(self,'codeRGB',1,0,0,200,40);
      Field.setNewTextFormat(Font);
     end;

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    bonjour,

    je ne vois pas de solution simple pour connaître la couleur affichée à une position X, Y...mais dans le cadre de ton exemple, la position de la souris modulo la taille des carrés permet de savoir où l'on est et du coup la couleur qu'on a choisi pour ce carré
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Merci pour ta réponse...
    En ce qui concerne la modification du curseur et l'évenement onMouseWheeldown qui n'est pas présent, as -tu une possibilité pour apporter ces fonctionnalités à ton éditeur?

Discussions similaires

  1. Idée sur Login et password
    Par STANDBOY dans le forum Access
    Réponses: 13
    Dernier message: 22/12/2005, 19h10
  2. [Access] Manque d'idées sur une requête
    Par portu dans le forum Langage SQL
    Réponses: 12
    Dernier message: 22/11/2004, 13h25
  3. Problème graveur ide sur mdk10
    Par Hanslip dans le forum Matériel
    Réponses: 40
    Dernier message: 26/10/2004, 14h17
  4. idees sur requete a simplifier ???
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2004, 10h42

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