IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Stagiaire WDF
Inscrit:
19/12/2005 11:01
Post(s): 10
Le but est de copier l'image ( image1) vers un bloc mémoire.
Pour simplifier , j'ai mis une taille fixe de mémoire.
L'api ne semble pas pouvoir accéder au handle de l'image !
Le message de l'api est << descripteur invalide !>>
Res doit retourner la taille transférée ... et Zéro si ça n'a pas fonctionner !

Voici le code :

-----------------------------------------------------
BITMAP est structure
bmType est entier sur 4 octets // As Long
bmWidth est entier sur 4 octets ///As Long
bmHeight est entier sur 4 octets //As Long
bmWidthBytes est entier sur 4 octets //As Long
bmPlanes est entier sur 2 octets // Integer
bmBitsPixel est entier sur 2 octets// As Integer
bmBits est entier sur 4 octets //Long
END

PicInfo est BITMAP
buffer est un tableau dynamique de 10000 caractères

res est entier =API("GDI32","GetBitmapBits",Handle(Image1),100,&buffer)

Info(res,ErreurInfo(errComplet))
-----------------------------------------------------

J'ai essayé également l'api <<GetDIBits>> et le résultat est le même ...
J'ai Tenté l' API("GDI32","GetObjectA",Handle(Image1),i2,&PicInfo).
Elle veut pas non plus me donner des info sur le champ image .
J'ai testé en VB , ça marche pourtant trés bien !

Existe-t-il une différence entre les champs images WINDEV et le champ Image VB ?

Pour curieux et spécialistes Api ....

Contribution le : 23/12/2005 17:45
Créer un fichier PDF de la contribution Imprimer


Re: IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Bonsoir,

Vous vous êtes trompé sur les paramètres envoyés :
par exemple pour GetDIBits il faut donner le DC (Device Context) de l'image et non son handle (hé oui il y a une différence).

Pour récupérer le DC d'un champ image il faut faire :
SysRécupèreDC(Handle(Champ_image) )

P.S. : Et normalement il faut spécifier un pointeur sur un DC donc utilisez la syntaxe &MonDC .

Cela devrait marcher mieux :)

Bon dév.,

Joyeux noël,

Totof

Contribution le : 23/12/2005 23:51
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Stagiaire WDF
Inscrit:
19/12/2005 11:01
Post(s): 10
Je suis désolé de te contredire :o) ( source MSDN ) :
--------------------------------------
LONG GetBitmapBits(
HBITMAP hbmp, // handle to bitmap
LONG cbBuffer, // number of bytes to copy
LPVOID lpvBits // buffer to receive bits
);
---------------------------------------
bon ,je sais j'utilise GetBitmapBits (16bits) parce que << GetDIBits >> ne marche pas non plus , ca fait des jours que je cherche ( j'ai tésté en VB , les 2 fonctionnent sans souci pourtant sur des images crées en VB ).

J'ai pourtant une partie de la solution , les images ( Handle ou DC ) crées par windev semblent vérouillés , j'ai utilisé :
----------------------------------------
hWnd=API("GDI32","CreateBitmap",20,20,0,32,Null)
----------------------------------------
Pour créer un bitmap , et la , les Api marchent et retournent des valeurs ...

Connais-tu un moyen ou une astuce ?
Cordialement.

Contribution le : 26/12/2005 17:11
Créer un fichier PDF de la contribution Imprimer


Re: IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Je parlais de GetDIBits :
source MSDN :
int GetDIBits(
HDC hdc, // handle to DC
HBITMAP hbmp, // handle to bitmap
UINT uStartScan, // first scan line to set
UINT cScanLines, // number of scan lines to copy
LPVOID lpvBits, // array for bitmap bits
LPBITMAPINFO lpbi, // bitmap data buffer
UINT uUsage // RGB or palette index
);

Effectivement il faut aussi un handle vers un bitmap (qui me semble t'il n'est pas récupérable depuis WD).

Par contre vous pouvez transferer une image vers un bloc mémoire simplement :

// Sauve en mémoire l'image présente dans "ImageDessin"
ResSauvegarde = dSauveImageBMP (ImageDessin, EnMémoire )

ResSauvegarde est une chaine contenant l'image.

Bon dév.,

Totof

Contribution le : 26/12/2005 17:49
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Stagiaire WDF
Inscrit:
19/12/2005 11:01
Post(s): 10
Merci pour ta réponse et ta patience .

Je cherchais un moyen plus rapide que dsauve , mais je pense que je ferais avec !!!!

Je vais demander au support pcsoft s'ils en savent quelque chose , je n'aime pas rester sur ma fin !



Contribution le : 26/12/2005 23:59
Créer un fichier PDF de la contribution Imprimer


Re: IMPOSSIBLE D'UILISER l'API GetBitmapBits avec WINDEV !
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Tiens nous au courant. Merci.

Bon dév.,

Totof

Contribution le : 27/12/2005 09:57
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2