Problème avec les images!

Programmation d'applications complexes
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Problème avec les images!

Message par nico »

Pourquoi lorsque je fais une copie d'une image, je n'ai pas accès au bit, j'ai vraiment besoin de cette fonction.

Code : Tout sélectionner

UseJPEGImageDecoder()
UsePNGImageDecoder()

LoadImage(0,"c:\Image_Essai.png")
CopyImage(0,1)

GetObject_(ImageID(0), SizeOf(BITMAP), @bmp.BITMAP)
*bits = bmp\bmBits
Debug *bits

GetObject_(ImageID(1), SizeOf(BITMAP), @bmp.BITMAP)
*bits = bmp\bmBits
Debug *bits
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai trouvé une soluce au lieu de faire un CopyImage, faire un GrabImage.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Je n'ai pas testé, mais j'ai l'impression que la lib image a besoin d'être améliorée. J'avais rencontré un autre problème, quand tu sauvegardes une image avec une couche alpha, la copie n'a pas de couche alpha. Fred m'avait répondu qu'il devait remettre de l'ordre dans la lib image :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Quelqu'un pourrait tester, il se passe des choses bizarres au lieu d'ime image, j'ai une icône.


Code : Tout sélectionner

;//Test sur image

UseJPEGImageDecoder()
UsePNGImageDecoder()

Structure RGBA 
    Red.b
    Green.b
    Blue.b
    Alpha.b
EndStructure

Structure RGBAL
    Red.l
    Green.l
    Blue.l
    Alpha.l
EndStructure


If OpenWindow(0, 300, 100, 300, 300, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    
    
    CatchImage(10,?Image)
    
    CreateGadgetList(WindowID(0))
    
    ImageGadget(0,0,0,0,0,ImageID(10))
    ImageGadget(1,160,0,0,0,ImageID(10))
    
    TrackBarGadget(2, 10,  220, 200, 20, 0, 200)
    TrackBarGadget(3, 10,  260, 200, 20, 0, 200)
    
    SetGadgetState(2,100)
    SetGadgetState(3,100)
    
    Repeat 
        Event = WaitWindowEvent() 
        Select Event 
            Case  #PB_Event_Gadget 
                Select EventGadget() 
                    Case 2
                        nBrightness=GetGadgetState(2)
                        nContrast=GetGadgetState(3)
                        If IsImage(11)
                          FreeImage(11)
                        EndIf 
                        GetObject_(ImageID(10), SizeOf(BITMAP), @bmp.BITMAP)
                        GrabImage(10,11,0,0,bmp\bmWidth,bmp\bmHeight)
                        Debug ImageID(11)
                        SetGadgetState(1,11)
                    Case 3
                        Debug GetGadgetState(3)
                        nContrast=GetGadgetState(3)
                        nBrightness=GetGadgetState(2)
                        If IsImage(11)
                          FreeImage(11)
                        EndIf 
                        GetObject_(ImageID(10), SizeOf(BITMAP), @bmp.BITMAP)
                        GrabImage(10,11,0,0,bmp\bmWidth,bmp\bmHeight)
                        SetGadgetState(1,11)

                EndSelect
                
            Case #WM_CLOSE
                Quit = 1
                
        EndSelect 
    Until Quit = 1
    
EndIf

End 

  
DataSection
Image:
IncludeBinary "c:\Image_Essai.png" ;image 100*100
EndDataSection
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

c'est fortiche ici

Message par beauregard »

Quelqu'un pourrait tester, il se passe des choses bizarres au lieu d'ime image, j'ai une icône.
dès que l'on clique sur l'une des deux barres, l'image de droite s'évanoui, et à la place une sympatique bulle I apparait, ainsi que la petite fenêtre "debug" avec plein de nombre incompréhensible pour une quiche ( genre 84217623)
Répondre