Page 1 sur 1

[Résolu] Comment afficher une image sur une autre image

Publié : lun. 28/mars/2016 17:52
par Micoute
Bonsoir à tous,

pour un logiciel éducatif que je fais pour mes petits-enfants, j'aimerais savoir on peut afficher une image sur une autre image, c'est à dire que je voudrais mettre une image en fond et afficher des images dessus.

J'espère m'être bien expliqué et je vous remercie tous pour l'aide que vous allez m'apporter.

Re: Comment afficher une image sur une autre image

Publié : lun. 28/mars/2016 18:33
par falsam
StartDrawing(ImageOutput(Tonbackground))
Tu dessines ta deuxième image
StopDrawing()

Re: Comment afficher une image sur une autre image

Publié : lun. 28/mars/2016 18:47
par falsam
Un petit code au risque de me faire houspiller :mrgreen:

Code : Tout sélectionner

Enumeration Window
  #MainForm
EndEnumeration

Enumeration
  #Image
EndEnumeration

InitNetwork()
UseJPEGImageDecoder()
UsePNGImageDecoder()

If ReceiveHTTPFile("http://falsam.com/download/images/sprites/blur1.jpg", "blur1.jpg")
  Image1 = LoadImage(#PB_Any, "blur1.jpg")
EndIf

If ReceiveHTTPFile("http://falsam.com/download/images/sprites/i2.png", "i2.png")
  Image2 = LoadImage(#PB_Any, "i2.png")
EndIf


If OpenWindow(#MainForm, 0, 0, 800, 600, "New Project", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  ;Dessin de la deuxiéme image sur la premiere
  StartDrawing(ImageOutput(Image1)) 
  DrawingMode(#PB_2DDrawing_AlphaBlend) ;Uniquement si image avec transparence
  DrawImage(ImageID(Image2), 100, 100)
  StopDrawing()
    
  ImageGadget(#Image, 10, 10, ImageWidth(Image1), ImageHeight(Image1), ImageID(Image1))
  
  Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
EndIf

Re: Comment afficher une image sur une autre image

Publié : lun. 28/mars/2016 18:48
par Ar-S
Dessin de l'image bleu puis dessus, dessin de l'image blanche.

Code : Tout sélectionner


Enumeration
  #LDVM
  #CANVAS
 
  #IM1
  #IM2
EndEnumeration



; /////////////////////////////////////////
;- PROGRAMME
; //////////////////////////////////////////

Fond = CreateImage(#IM1,640,480,24,$FFCC00)
Image1 = CreateImage(#IM2,120,120,24,$FFFFFF)


If OpenWindow(#LDVM, 0, 0, 640, 480, "test",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  CanvasGadget(#CANVAS,0 , 0, 640,480,#PB_Canvas_ClipMouse)
 
  StartDrawing(CanvasOutput(#CANVAS)) 
;Dessin du fond
  DrawImage(Fond,0,0)
; Dessin de l'image
  DrawImage(Image1,50,40)
  StopDrawing()
  
  
  
  Repeat
    Event = WaitWindowEvent()

    Select event
        
      Case #PB_Event_Gadget
        
        Select EventGadget()

          Case #CANVAS
                   
        EndSelect
    EndSelect

  Until Event = #PB_Event_CloseWindow
EndIf

End



Re: Comment afficher une image sur une autre image

Publié : lun. 28/mars/2016 19:51
par Micoute
Merci à vous 2 qui m'avez déconcerté tellement c'était finalement très simple, car j'avais oublié StartDrawing() et j'avais 2 ImageGadget() qui n'étaient pas dans le bon ordre.

@falsam, ce n'est sûrement pas moi qui va te houspiller, bien au contraire.

@Ar-s, bien que ton exemple soit présenté différemment, il est aussi bien que celui de falsam.

Je vous remercie énormément tous les deux.

Re: [Résolu] Comment afficher une image sur une autre image

Publié : mar. 29/mars/2016 7:27
par Micoute
Bonjour Spock, oui, c'est vrai, mais ça m'a été utile tout de même et tout ce qu'on m'offre a une grande valeur pour moi.

Re: [Résolu] Comment afficher une image sur une autre image

Publié : mar. 29/mars/2016 11:53
par Ar-S
C'est pas faux mais je suis parti dans l'optique que si c'est pour un petit jeu pour un gosse, il y aura une, deux, trois images et que concrètement, une image sera affichée sur un ecran (canvas ou screen) et le but sera de poser une autre image dessus... Mais peut-être me trompe-je 8)
Dans mon exemple, le vrai fond c'est le canvas.

Re: [Résolu] Comment afficher une image sur une autre image

Publié : mar. 29/mars/2016 15:17
par Micoute
Tu as deviné, c'est tout à fait ça, il y a une image où il faut mettre son nom, sa couleur, ou sa forme, mais ça peut servir à toutes autres choses.