Traitement sur des images avec StretchBlt

Résolu
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 23 août 2007 à 18:52
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 25 août 2007 à 17:12
Bonjour à tous,

J'utilise Stretch... pour copier un morceau d'image 

StretchBlt   Destination  , 0, 0, Width, Height,      Source, 100, 100, Width, Height,      vbSrcCopy 

<hr />
StretchBlt   Picture1.hdc, 0, 0, width , Height,     Me.hdc, 200, 200, Width, Height     ,  vbSrcCopy

                   Cette instruction fonctionne correctement  mais ne correspond pas à ce que je souhaiterais faire

<hr />
Question:
     1) Je souhaiterais avoir comme source  une PictureBox  ( Est-ce possible)
     2) Je souhaiterais avoir comme source  une Imagebox     (Est-ce Possible)

Avez vous la réponse à mes questions et une éventuelle proposition à me faire.

Merci pour votre aide.

      

    

9 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 août 2007 à 20:01
te suffit de remplacer le Me.hdc par ton picturebox.hdc tout simplement...

Par contre, pour le contrôle Image ce n'est pas possible : Il s'agit d'un contrôle static, il ne possède pas de handle de fenêtre, et donc à fortiori, pas de handle de DC !
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
24 août 2007 à 19:30
Utilise le Screen.TwipsPerPixel pour faire la conversion
3
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
24 août 2007 à 11:48
Bonjour Nicolas,

   Merci pour ta réponse. J'en profite pour te demander si tu as toujours ton guide des Api. Je l'avais rappatrié du temps de Progotop. Malheureusement, après avoir changé d'ordinateur il ne fonctionnais plus. J'ai peut-être
mal cherché sur internet mais le ne l'ai pas retrouvé.

   Connais tu un livre en Français qui donne la liste et la manière d'utiliser les API. J'ai cherché et je n'ai pas trouvé. Comme tu as la connaissance, tu devrais en écrire un.

   Il y a bien longtemps que je n'ai eu le plaisir de correspondre avec toi. Toujours à Bordeaux. !

Merci encore  pour ton aide.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
24 août 2007 à 12:01
Salut jean ! Ca fait plaisir de te revoir (j'avais même pas fait attention que c'était toi qui avais posté !).

Toujours sur bordeaux, mais pour peu de temps : je vais aller sur niort d'ici 1 mois pour des raisons professionnelles.

Depuis la fermeture de ProgOtoP, POPAPI n'est plus téléchargeable sur le net, je le garde pour moi, et l'envoie à ceux qui le demande ;)

Pourrais-tu m'envoyer ton adresse email par mp afin que je t'envoie le POPAPI ?

Je ne connais pas de livres particuliers (surtout écrits en français pour le VB !), malheureusement la plupart des docs sont soit en anglais, soit pour le C++, soit les deux !
Va voir ces sites là, ils me paraîssent pas trop mal pour se faire une idée, bien que fait pour le langage C :
http://www.secretswindows.com/index.php?rubrique=API&page=./api/presentation.htm
http://bob.developpez.com/tutapiwin/

Une très bonne doc API française, mais malheureusement plus mise à jour (qui m'avait poussé à l'époque à faire mon POPAPI justement) :
http://docvb.free.fr/api.php

Je te contacte par mp dans la soirée pour prendre de tes nouvelles.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
24 août 2007 à 17:18
Complément d'informations




<hr />
StretchBlt   Destination  , Left , Top, Width, Height,      Source, Left, Top, Width, Height,      vbSrcCopy 
<hr />
Un complément d'informations pour ceux qui ne connaissent pas cet Api. En ce qui me concerne, J'ai cherché
longtemps avant de comprendre:

Je demande aux spécialistes de me corriger  si je me trompe.

   Les valeurs  Left  - top - Width et Height doivent être données en pixels.  Utilisez par exemple la propriété
ScaleMode = 3  avant de charger la valeurs de ces coordonnés.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
24 août 2007 à 17:26
oui tout à fait : les API Windows travaillent toujours par défault en pixels ! A ne pas oublier !
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
24 août 2007 à 19:24
Mon programme fonctionne maintenant correctement mais il y a quelque chose qui me chagrine.
<hr />
J'ai rajouté après le StretchBlt un Scalemode = 1  pour que le traitement qui suit fonctionne correctement.

Ce Scalemode = 3 me gêne .
Je souhaiterais rester en scalemode =1 et calculer toutes les valeurs (Left,Top,With et Heith)

Je dois donc convertir les valeurs Twips en Pixels et là je ne sais pas faire ou mal le faire.

Avez vous l'Api ou la formule miracle pour me dépanner.
Encore Merci.

<hr />
Me.ScaleMode = 3
Picture.ScaleMode = 3

Calcul Left - top - width  height  --> (EX: Width = Picture.ScaleWidth .....)

StretchBlt    Me.hwnd  , Left , Top, Width, Height,  Picture.Hwnd, Left, Top, Width, Height,      vbSrcCopy 

Me.scalemode = 1
<hr />
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
24 août 2007 à 19:56
C'est tout bon !

Merci Nicolas. 
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
25 août 2007 à 17:12
Encore une question et j'espère la dernière sur ce sujet.

<hr />
StretchBlt   Me.picture.hwnd  , Left , Top, Width, Height,  me.Hwnd, Left, Top, Width, Height,      vbSrcCopy 
<hr />
Après avoir affiché mon image sur la form,  je déplace sur cette dernière un objet Textbox. 

J'ai encore utilisé l'instruction ci-dessus pour sauvegarder Image et Textbox dans une PictureBox.

Le résultat obtenu n'est pas celui que j'attendais. Je pensais récupérer Image et textbox dans ma picture mais la recopie c'est faite en ignorant la Textbox .

Avez vous la solution pour recopier Image et textbox dans une PictureBox

Encore Merci
0
Rejoignez-nous