Page 1 sur 1
Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 17:37
par anissa
bonjour,
jutilise souvent DrawImage, je n'ai jamais eu de problème jusqu'ici, quand ja destinatiion est la fenêtre, ça marche mais quand la destination est image ça ne marche pas.
j'utilise ici un cpanel, et je voudrais y afficher une image avec les dimensions voulues:
Code : Tout sélectionner
LoadImage(1,"img.jpg") ;l'image existe c vérifié
CreateImage(0,255,255)
StartDrawing(ImageOutput(0))
DrawImage(10,10,50,50,ImageId(1))
StopDrawing()
si je fais la même chose avec windowoutput, ça marche mais sur un panel, rien n'est affiché pourquoi?
Merci de votre aide
ANISSA
Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 17:41
par Parole De JOJO
poste peut etre un code plus complet
Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 19:48
par Ar-S
As tu mis UseJPEGImageDecoder()
en début de code ?
Conseil :
Faites des tests dans vos procédures et lancez le debugger vous aurez vos réponses !
Code : Tout sélectionner
VerifImg = LoadImage(1,"img.jpg")
If VerifImg <> 0
VerifCrea = CreateImage(0,255,255)
If VerifCrea <> 0
Debug "Tout va bien, on peut continuer"
Else
Debug "erreur VerifCrea"
EndIf
Else
Debug "erreur Verif IMG"
EndIf
etc etc
Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 20:39
par falsam
je ne connais pas la finalité de ton code mais il y aune erreur je pense sur ta fonction
DrawImage.
D’après l'aide, remplace
par
Tu cherche à redimensionner une image préalablement charger et ensuite l'afficher sur un gadget image ? en bref, faire une miniature ?
Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 20:43
par Ar-S
C'est pas les versions de PB 3.9x qui étaient foutues de la sorte ?
Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 20:47
par falsam
@Ar-S : je suis trop jeune dans Pure basic pour avoir connu cette version 3.9

Re: Pourquoi DrawImage ne marche pas ici?
Publié : mar. 22/févr./2011 22:10
par falsam
Un code pour miniaturiser une image que tu charges au préalable.
Code : Tout sélectionner
UseJPEGImageDecoder()
Enumeration
#MainForm
#Panel
#Image ;Celle qui figure sur la fenetre
#RImage
EndEnumeration
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,450,350,"Image sur panel",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
PanelGadget(#Panel,10,10,400,300) ;Tu parlais d'un panel alors j'en ai mis un :p
LoadImage(#RImage,"img1.jpg")
ImageGadget(#Image,15,15,0,0, ImageID(#RImage))
SetGadgetState(#Image,ResizeImage(#RImage,250,250))
FreeImage(#RImage)
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
J'imagine bien un potentiomètre pour augmenter ou réduire l'image

Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 11:43
par anissa
@falsam
Je crois que vous sortez du sujet: il s'agit de DrawImage, c'est ça qui ne fonctionne pas chez moi quand je l'utilise sur un panel.
Par contre, j'ai fait ce test:
Code : Tout sélectionner
VerifImg = LoadImage(1,"img.jpg")
If VerifImg <> 0
VerifCrea = CreateImage(0,255,255)
If VerifCrea <> 0
Debug "Tout va bien, on peut continuer"
Else
Debug "erreur VerifCrea"
EndIf
Else
Debug "erreur Verif IMG"
EndIf
Voici le resultat obtenu:
Mais au moment de DrawImage (juste après ce message)
RIEN N'EST AFFICHE !
Alors???
Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 13:18
par Ar-S
Ben donne nous plus de code, excuse moi mais là je te donne des conseils pour faire des tests, a toi d'ajouter d'autres tests à la suite de celui ci !
genre :
Code : Tout sélectionner
If StartDrawing(ImageOutput(0))
Debug "StartDrawing OK"
;draw;;; etc etc
Il y a PLEIN d'exemple pour DrawText alors cherche un peu ou donne un code
a peu près complet. Ici on ne sait pas si tu veux faire apparaitre ton image dans un imageGadget (ce qui parait logique mais bon...) par exemple.
ça fait perdre trop de temps de jouer aux devinettes. Pour finir, je doute que vos créations soient de l'ordre du top secret ou qu'ils contiennent des algorithmes uniques au monde.., donc arrêtez la parano et proposez nous des codes complets. je ne testerai plus aucun code non fonctionnel à partir de maintenant. J'entends par fonctionnel un code executable avec fenêtre et events/loop.
C'est dit.

Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 13:29
par case
+1 ar-s
c'est lourd de devoir ajouter du code autour de trois lignes pour donner une aide ou un avis.
et aussi si possible une version récente de pb disponible en téléchargement dans l'espace membres, pas un truc sorti d'un autre age ou dont on ne sait d'où...
parce qu'en l'état ce code ne fonctionnerais même pas sur mon pb actuel du a la syntaxe différente...
Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 13:32
par Backup
Ar-S a écrit : je ne testerai plus aucun code non fonctionnel à partir de maintenant. J'entends par fonctionnel un code executable avec fenêtre et events/loop.
ya longtemps que j'ai appliqué ce précepte

Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 13:37
par Ar-S
Ouai mais je suis arrivé en 2005, tu avais pris de l'avance

Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 20:24
par falsam
anissa a écrit :@falsam
Je crois que vous sortez du sujet: il s'agit de DrawImage, c'est ça qui ne fonctionne pas chez moi quand je l'utilise sur un panel.
Au regard du peu de code fourni, j'ai cru comprendre que vous vouliez juste charger une image et l'afficher dans un Gadget Image avec des dimensions imposées . Voila pourquoi dans mon exemple de code, drawimage n'apparaissait pas.
Re: Pourquoi DrawImage ne marche pas ici?
Publié : jeu. 24/févr./2011 21:54
par falsam
je vais tacher de ne pas sortir du sujet et de rester dans le cadre de ta demande. Ooops pardon, de votre demande.
Code : Tout sélectionner
UseJPEGImageDecoder()
Enumeration
#MainForm
#Panel
#Image ;Celle qui figure sur la fenetre
#RImage1
#RImage2
EndEnumeration
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,450,350,"Image sur panel",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
;////// Début de ton code fourni
LoadImage(#RImage1,"img1.jpg")
CreateImage(#RImage2,255,255)
StartDrawing(ImageOutput(#RImage2))
DrawImage(ImageID(#Rimage1),10,10,50,50)
StopDrawing()
;///// Fin de ton code fourni
;Maintenant j'improvise :p (J'adore ça)
ImageGadget(#Image,15,15,0,0, ImageID(#RImage2))
SetGadgetState(#Image,ResizeImage(#RImage2,250,250))
FreeImage(#RImage1)
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
End
EndSelect
ForEver