code d'un afficheur d'image pour window$, l'image est chargée directement sur le fond de la fenêtre, y'a pas de sorcelerie
pour faire fonctionner le programme clic droit sur une image (jpg,bmp,png) puis ouvrir avec et utiliser une compil de ce bout de code
ou
dans les options du projet, dans arguments mettre le chemin d'accés à une image
la partie qui t'interesse =
Code : Tout sélectionner
If flag_resize
CreateImage(1,Largeur,Hauteur)
CopyImage(0,1) : UseImage(1)
ResizeImage(1,win_Width-8,win_Height-50)
StartDrawing(WindowOutput())
DrawImage(UseImage(1),0,25)
StopDrawing()
Else
Code : Tout sélectionner
Enumeration
#WND_WINDOW
#WND_MAIN
#MNU_MENU
#MNU_MAIN
#MNU_OUVRIR
#MNU_SAUVER
#MNU_QUITTER
#MNU_PREC
#MNU_SUIV
#MNU_SLIDE
#MTB_TOOLBAR
#MTB_MAIN
#GDT_GADGET
#GDT_MAIN
EndEnumeration
#IMAGE_A_AFFICHER = 0
#SCREEN_BORDER_Y = 25
Global NomFichierImage.s,extimage.s
Global flag_resize.b : flag_resize =0
Global win_Width.w : win_Width = GetSystemMetrics_(#SM_CXFULLSCREEN)
Global win_Height.w : win_Height = GetSystemMetrics_(#SM_CYFULLSCREEN)
Procedure main_windows()
If OpenWindow(#WND_MAIN, 0, 0,200, 200,#PB_Window_TitleBar | #PB_Window_SizeGadget | #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget, "PC'See - visualisation / capture d'image")
If CreateMenu(#MNU_MAIN, WindowID())
MenuTitle("Fichier")
MenuItem(#MNU_OUVRIR,"Ouvrir")
MenuBar()
MenuItem(#MNU_QUITTER,"Quitter")
EndIf
If CreateToolBar(0, WindowID())
ToolBarStandardButton(#MNU_OUVRIR, #PB_ToolBarIcon_Open)
ToolBarToolTip(#MNU_OUVRIR, "Ouvrir")
EndIf
EndIf
EndProcedure
Procedure chargePlugInImage()
If extimage = "JPG"
UseJPEGImageDecoder()
ElseIf extimage = "PNG"
UsePNGImageDecoder()
ElseIf extimage = "TIF"
UseTIFFImageDecoder()
ElseIf extimage = "TGA"
UseTGAImageDecoder()
EndIf
EndProcedure
Procedure affiche_image()
Shared Largeur.w ,Hauteur.w
;CallDebugger
Largeur = ImageWidth()
Hauteur = ImageHeight() + 45 ; barre system+barre menu+barre d'outils
If Largeur < 100
Largeur = 100 : flag_resize = 0
ElseIf Largeur > win_Width
Largeur = win_Width : flag_resize = 1
EndIf
If Hauteur > win_Height
flag_resize = 1
EndIf
ResizeWindow(Largeur,Hauteur) : MoveWindow(0,0)
If flag_resize
CreateImage(1,Largeur,Hauteur)
CopyImage(0,1) : UseImage(1)
ResizeImage(1,win_Width-8,win_Height-50)
StartDrawing(WindowOutput())
DrawImage(UseImage(1),0,25)
StopDrawing()
Else
StartDrawing(WindowOutput())
DrawImage(UseImage(0),0,25)
StopDrawing()
EndIf
EndProcedure
Procedure main()
main_windows()
NomFichierImage = ProgramParameter()
If NomFichierImage<>""
extimage = UCase(Right(NomFichierImage,3))
chargePlugInImage()
LoadImage(0,NomFichierImage)
EndIf
Repeat
EventID.l = WaitWindowEvent()
If NomFichierImage<>""
affiche_image()
EndIf
Select EventID
Case #PB_Event_Repaint
If flag_resize
StartDrawing(WindowOutput())
DrawImage(UseImage(1),0,25)
StopDrawing()
Else
StartDrawing(WindowOutput())
DrawImage(UseImage(0),0,25)
StopDrawing()
EndIf
Case #PB_EventGadget
; Select EventGadgetID()
; EndSelect
Case #PB_EventMenu
Select EventMenuID()
Case #MNU_OUVRIR
NomFichierImage = OpenFileRequester("Ouvrir une image","*.*","Tous fichiers|*.*" ,0)
extimage = UCase(Right(NomFichierImage,3))
chargePlugInImage()
LoadImage(0,NomFichierImage)
Case #MNU_QUITTER
Quit = 1
EndSelect
Case #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndSelect
Until Quit = 1
EndProcedure
main()
End
[/code]