Page 1 sur 2

GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 19:23
par ElwoOOod
Bonjour,
Après pas mal de cheveux perdus, j'arrive presque au bout. Cependant, je me heurte a une incompréhension.

Pour ne pas vous mettre tout le code, je vous explique.
Je cherche a sauvegarder un bout de l'image de mon MainCanvas avant l'ajout d'element.

Si j'insere dans mon code

Code : Tout sélectionner

  StartDrawing(ImageOutput(#STBackBuffer)) : DrawingMode(#PB_2DDrawing_Default)
  DrawImage(GetGadgetAttribute(#MainCanvas,#PB_Canvas_Image),0,380,720,28)
  StopDrawing()
Ca marche niquel sauf que tous mes sprites se mettent à scintiller.
Pour gagner du temps, je me dis que je pourrais remplacer ces lignes par un simple

Code : Tout sélectionner

    GrabImage(GetGadgetAttribute(#MainCanvas,#PB_Canvas_Image),#STBackBuffer,0,380,720,28)
Sauf que là, j'ai un
[ERROR] The specified #Image is not initialised
???

A noter que MainCanvas est affiché (et son image active), STBackBuffer deja appelé au moins une fois au demarrage de l'appli et possede des données (donc initialisé)
Help ^^

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 19:53
par ElwoOOod
Oups, erreur de ma part, j'ai oublié le ImageID et là c'est le drame car meme la partie du code

Code : Tout sélectionner

  StartDrawing(ImageOutput(#STBackBuffer)) : DrawingMode(#PB_2DDrawing_Default)
  DrawImage(ImageID(GetGadgetAttribute(#MainCanvas,#PB_Canvas_Image)),0,380,720,28)
  StopDrawing()
Me renvoi l'erreur 'The specified #Image is not initialised

A noter que si j'envoi ca un peu avant, je n'ai pas d'erreur a cet endroit du code (ce qui me laisse penser que les images sont bien initialisé ?)

Code : Tout sélectionner

  StartDrawing(CanvasOutput(#MainCanvas)) : DrawingMode(#PB_2DDrawing_Default)
  DrawImage(ImageID(#STBackBuffer),0,380,720,28)
  StopDrawing()

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 20:24
par Backup
mais il y a une image dans ton Canvas ??

le Canvas est un container .... comme l'openScreen ...

si tu utilises une image , faut qu'elle soit presente dans le Canvas

le fait de dessiner dans un canvas, n'implique pas qu'il y a une image !!
tu dessines dans le Canvas ..

tu peux Creer une image, dessiner dans cette image, et afficher cette image dans le Canvas ...

suis-je clair ???
mais cette image doit avoir été créé !! (Createimage() ou loadimage() )


Principe de Base

je creer une image (Createimage())
je dessine dans cette image Start Drawing(imageoutput())
Box(10,10,100,100,couleur)
Stop Drawing


j'affiche l'image dans le Canvas :
Start Drawing (Canvas output())
Drawimage()
Stop Drawing

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 20:31
par Ollivier
Et pis t'as vu l'heure là Helmut?
T'es dans un fuseau horaire où il y a un couvre-feu?

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 20:37
par Backup
ha oui , c'est curieux ...
il est pas minuit ... 8O

encore un coup d'avoir utilisé des Proxys (chinois )

il a fallu que je règle le forum pour dire que j'habite le Groenland pour avoir l'heure juste dans mes Messages !! 8O

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 21:19
par ElwoOOod
Merci,
Toutes mes images sont soit CatchImage ou CreateImage, pas de soucis.
En isolant les constantes, c'est le GetGadgetAttribute(#MainCanvas,#PB_Canvas_Image) qui me renvoi une valeur null.
Comme je suis un noob et que je m'eparpille, j'ai pas lu la ligne dans le doc precisant que #PB_Canvas_Image ne renvoi une valeur que sur un WindowEvent() ... Flute :/

Donc, il faut que je modifie tout mon code pour ajouter un #MainBuffer, mais pour l'instant ca clignote a mort :/

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 21:44
par Ollivier
@Dobro

Mais c'ezt pas à toi que je parle, le vieux grément là! C'est à l'autrz là "Helmut", je comprends pas son pseudo. Il a dû glisser en s'inscrivant... Il y a des lettres "o" en trop...

Putain c'est pas mak les canva machin. Je connaisais pas. Des fois Fred il a des bonnes idees. Je vais regardet ça de plus près c'est que ça serait interessant ça.

@Ehud

Bon attends là. Je vais chercher la batterie de la renault 19 ey je vais mettre l'ordinateur en route avec. Si tu veux Fred, cnest un peu un bourrin des fois. Y t'a fait une bibliotheque ou tu peux tout écrire sur un rendu 2d : des ronds des croix, fes carrés, des rectangles, des caklbacks, des losanges, des tpurd eiffel, etc...

Par contre, pour LIRE un rendu 2d, l'ensemble de la globalité générale de toutes les nombreuses fonctions de lecture d'un rendu 2D en PureBASIC Version Summer 2014 sont énumérées dans la liste ci-dessous:

- Point()





C'est tout! Fin de la grande liste. Si le rendu 2D était une femme, tu peux la tatouer de haut en bas de tout les couleurs, de toutes les formes, etc... Par contre, tu te débrouilles pour gérer tout le dessin en la regardant par le trou de la serrure (la fonction "point"): t'as que ça pour la regarder!

Alors excuse-moi ehud, j'ai un rdv, vu l'heure, le joir, etcc.... Disons que pour la fin de la messe dominiquale demain matin, si personbe ne l'a fait avant moi, je posterai un code qui équivaut à une défonce de porte pour voir madame autrement que par le petit trou, autrement dit, t'auras forcément un code dans quelques heures qui corresppnd à ce que tu veux, à savzoir sauveharder un bout ou la totalité de ton calvagadget.

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 21:47
par Ollivier
GrabDrawingImage()
c'est ça qu'il te faut helmut! Fred l'a fait! Là, ça devient sérieux!

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : sam. 02/août/2014 22:07
par ElwoOOod
je ne sais pas trop comment je dois prendre ton message mais t'inquietes, m'en faut plus pour me vexer :p

En tout cas, merci quand meme, GrabDrawingImage() est exactement ce qu'il me manquait et ca marche niquel.
Desole de ne pas connaitre toutes les commandes de Fred, je debute en PB :/

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 9:45
par graph100
En tout cas, le Ollivier, soit il avait trouvé un bon rouge, soit il écrit depuis un terminal pas catholique :wink:

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 10:46
par Backup
ne noooooous le vexe pas , il viens a peine de revenir :lol:

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 22:24
par Ollivier
Pas de problème Kenwood. Et je comprends mieux pourquoi j'ai retrouvé la batterie dans l'évier en rentrant...

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 22:49
par Ollivier
...sur un tas d'assiettes explosées par ladite batterie. C'est la nouvelle méthode du samedi soir pour faire la vaisselle avant d'aller en bringue.

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 23:07
par SPH
J'comprend pas tout mais j'vais t'dire : ouai

Re: GrabImage(#PB_Canvas_Image) possible ?

Publié : dim. 03/août/2014 23:41
par Ollivier
@Seph

C'est compliqué. C'est l'histoire d'une gonzesse qui, un jour a décidé d'en découdre avec une pince coupante dans tous les câbles qu'elles pouvaient trouver. Il y a quelques transfos qui n'ont pas apprécié.

Résultat: j'ai tout mis sur batterie et panneau solaire. Comme ça, quand je veux que quelque chose tourne H24, je fous ça dans un champs, avec quelques tapettes parce que quand c'est pas une gonzesse hystéro (attention, j'ai pas dit que c'était un défaut), c'est des mulots qui s'acharnent sur les câbles, ou bien les fourmis qui squattent l'électronique, etc...