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 :

Affichage d'une image [Flash Pascal]


Sujet :

Flash Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Affichage d'une image
    Bonjour !

    Je voudrais afficher une image et pour cela je suis parti de l'exemple voeux2012 inclus dans FlashPascal 2. Dans cet exemple les dimensions de l'image sont identiques à celles de l'animation. Lorsque j'ai voulu placer l'image à l'intérieur d'un cadre plus grand, j'ai constaté que l'image ne s'affichait plus correctement. Voici mon code :

    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
    program BitmapData1;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 320}
    {$FRAME_HEIGHT 320}
    {$JPEG img 'dfd.jpg'}
     
    var
      b: BitmapData;
    begin
       b:=BitmapData.create(300,300);
       b:= loadBitmap('img');
      _root.beginBitmapFill(b);
      _root.moveto(10,10);
      _root.lineto(310,10);
      _root.lineto(310,310);
      _root.lineto(10,310);
      _root.lineto(10,10);
      _root.EndFill();
    end.
    L'image fait 300 sur 300, et j'ai simplement essayé d'ajouter une marge de 10 tout autour. Le résultat c'est que les bords gauche et supérieur de l'image passent à droite et en bas.

    Y a-t-il une erreur dans mon code ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  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
    Salut, curieux... pourtant, si je fais ça, pas de soucis lol

    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
     
    program voeux2012;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 540}
    {$FRAME_HEIGHT 386}
    {$JPEG img 'voeux2012.jpg'}
    {$BACKGROUND 0}
     
    var
      b: BitmapData;
    begin
       b:=BitmapData.create(520,366);
       b:= loadBitmap('img');
       with _root do
       begin
        beginBitmapFill(b);
        moveto(10,10);
        lineto(530, 10);
        lineto(530,376);
        lineto(10, 376);
        lineto(10,10);
       end;
    end.
    ?

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Merci Anthony pour ta réponse. Je viens d'essayer le code que tu as posté : si tu y fais attention, il y a bien le défaut que j'ai signalé, sauf que ça ne se voit pas parce que le bord est blanc.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  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
    Citation Envoyé par Roland Chastain Voir le message
    sauf que ça ne se voit pas parce que le bord est blanc.
    Ben si justement Roland... As-tu ajouté :


  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Je ne me suis pas expliqué assez clairement, mais vois ce qui se passe avec une marge de 100 :

    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
    program voeux2012;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 720}
    {$FRAME_HEIGHT 566}
    {$JPEG img 'voeux2012.jpg'}
    {$BACKGROUND 0}
     
    var
      b: BitmapData;
    begin
       b:=BitmapData.create(520, 366);
       b:= loadBitmap('img');
       with _root do
       begin
        beginBitmapFill(b);
        moveto(100, 100);
        lineto(620, 100);
        lineto(620, 466);
        lineto(100, 466);
        lineto(100, 100);
       end;
    end.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    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
    Je vois maintenant...je réfléchis...
    Sinon, pourquoi ne pas procéder comme ça :

    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
     
    program voeux2012;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 720}
    {$FRAME_HEIGHT 566}
    {$JPEG img 'voeux2012.jpg'}
    {$BACKGROUND 0}
     
    var
      b: BitmapData;
      mc:movieclip;
    begin
       b:=BitmapData.create(520, 366);
       b:= loadBitmap('img');
       mc:=movieclip.create(_root,'mypicture',0);
       with mc do
       begin
        attachbitmap(b,0);
        _x:=100;
        _y:=100;
       end;
    end.

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Impeccable ! Merci Anthony pour la solution.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    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
    Oui, mais ça ne me satisfait pas pour autant sans avoir réglé le problème du beginBitmapfill. Il faut peut-être regarder du côté du paramètre matrix...

    Je vais me coucher

    Je commence à fatiguer. Désolé.

    A+

  9. #9
    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
    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
     
    program voeux2012;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 720}
    {$FRAME_HEIGHT 566}
    {$JPEG img 'voeux2012.jpg'}
    {$BACKGROUND 0}
     
    var
      b: BitmapData;
      amatrix:matrix;
    begin
       //b:=BitmapData.create(520, 366);   inutile, le load se charge de le faire je pense...
       b:= loadBitmap('img');
       amatrix:=matrix.Create(1,0,0,1,100,100); //il suffit de faire une translation de 100-100 pixels vers la droite et vers le bas en gardant l'échelle 1
       with _root do
       begin
        beginBitmapFill(b,amatrix);
        moveto(100, 100);
        lineto(620, 100);
        lineto(620, 466);
        lineto(100, 466);
        lineto(100, 100);
       end;
    end.
    version beginBitmapFill.

    a+

    anthony

  10. #10
    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 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Archimède Voir le message
    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
     
    program voeux2012;
     
    uses
      Flash8;
     
    {$FRAME_WIDTH 720}
    {$FRAME_HEIGHT 566}
    {$JPEG img 'voeux2012.jpg'}
    {$BACKGROUND 0}
     
    var
      b: BitmapData;
      amatrix:matrix;
    begin
       //b:=BitmapData.create(520, 366);   inutile, le load se charge de le faire je pense...
       b:= loadBitmap('img');
       amatrix:=matrix.Create(1,0,0,1,100,100); //il suffit de faire une translation de 100-100 pixels vers la droite et vers le bas en gardant l'échelle 1
       with _root do
       begin
        beginBitmapFill(b,amatrix);
        moveto(100, 100);
        lineto(620, 100);
        lineto(620, 466);
        lineto(100, 466);
        lineto(100, 100);
       end;
    end.
    version beginBitmapFill.

    a+

    anthony
    j'arrive après la bataille, mais c'est exactement ça

    le beginBitmapFill commence par défaut en 0,0, et l'image est en damier.
    Pour dessiner à partir de la position 100 il faut appliquer une matrice de translation équivalente sous peine d'avoir un décalage dans l'image

    l'autre approche est évidemment de placer le tout dans un MovieClip dont l'origine est décalée, l'image bouge alors avec lui.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  11. #11
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Merci Paul pour le complément d'explication.

    Anthony, la classe !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tomcat] Affichage d'une image
    Par david71 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 15/02/2005, 11h37
  2. Réponses: 2
    Dernier message: 27/12/2004, 09h23
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 09h55
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 09h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41

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