Page 1 sur 1

Redimensionner une image dans un sprite

Publié : ven. 30/janv./2004 15:49
par julien
Salut,

Quelqu'un pourrait me dire comment redimensionner une image dans un sprite ?

En fait je veux afficher une image de 1024*768 pixel sur un ecran d'une résolution de 800*600 pixel, sans couper l'image, mais en la diminuant,...

Je ne sais pas si je suis bien clair...!

Merci :?

Publié : ven. 30/janv./2004 16:49
par Patrick88
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 :lol:

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]

Publié : ven. 30/janv./2004 16:50
par Oliv
tu n'est pas clair :D :D :D
Tu veux redimensionner une image ou un sprite ?
Image:
Syntaxe

ResizeImage(#Image, Largeur, Hauteur)
Description

Redimensionne l'#Image conformément aux largeur et hauteur spécifiées (en pixels).
sprite je sais pas trop si on peut.... :(

Publié : ven. 30/janv./2004 19:26
par Le Soldat Inconnu
v peut être dire un truc c.. mais pour moi, y'a pas de différence entre une image et un sprite si ce n'est le mode d'affichage.

Publié : sam. 31/janv./2004 10:27
par Oliv
Pour toi peut-être mais pour purebasic c'est autre chose :twisted: