Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Xnview et windev

5 réponses
Avatar
frederic.gandre
Bonjour =E0 tous,
J'aimerai r=E9aliser un appli avec la dll de xnview(Utilisation non
commercial =E0 usage personnel) pour charger une
image --> faire une rotation / redimensionnement / l'ajouter au presse
papier et la recuperer sous windev pour l'afficher et eventuellement
l'enregistrer et je bloque au niveau du chargement !!!
j'ai utilis=E9 le code de romain petit que je remerci pour son aide.
D'apr=E9s l'aide la dll si eErr =3D 0 alors pas d'erreur.
L'aide est telechargeable =E0 cette adresse : http://dl.free.fr/ioNKWqYu2
Voici le code de chargement !

STRUCTURE :

structLOAD_CALLBACK est une structure
Read est un entier sans signe
Tell est un entier sans signe
Seek est un entier sans signe
FIN

structLOAD_PARAMS est une structure
Flags est un entier sans signe
FormatIndex est un entier
ImageWanted est un entier
Origin est un entier sans signe sur 2 octets
ColorModel est un entier sans signe sur 2 octets
LinePadding est un entier sans signe
DefaultAlpha est un entier sans signe sur 1 octet
Reserved1 est un entier sans signe sur 1 octet
Reserved2 est un entier sans signe sur 2 octets
Width est un entier
Height est un entier
Offset est un entier sans signe
ChannelOrder est un entier sans signe sur 2 octets
ChannelType est un entier sans signe sur 2 octets
PcdBase est un entier sans signe sur 2 octets
EpsDpi est un entier sans signe sur 2 octets
EpsWidth est un entier
EpsHeight est un entier
LutType est un entier sans signe sur 2 octets
Reserved3 est un entier sans signe sur 2 octets
LutData est un entier sans signe
LutFilename est un entier
Callbacks est un structLOAD_CALLBACK
FIN

structBITMAP est une structure
Type est un entier sur 2 octets
Origin est un entier sans signe sur 2 octets
Width est un entier
Height est un entier
BytesPerLine est un entier sans signe
LinePadding est un entier sur 2 octets
BitsPerComponent est un entier sans signe sur 2 octets
ComponentsPerPixel est un entier sans signe sur 2 octets
BytesPerPixel est un entier sans signe sur 2 octets
Xdpi est un entier sans signe sur 2 octets
Ydpi est un entier sans signe sur 2 octets
TransparentIndex est un entier sur 2 octets
ColorUsed est un entier
ColorMap est un entier //pointeur sur structGFL_COLORMAP
Data est un entier //pointeur sur Data
Comment est un entier //pointeur sur Comment
MetaData est un entier //pointeur sur Metadata
FIN

strLoadParams est une structLOAD_PARAMS
EPointeurBitmap est un structBITMAP



INIT DE LA LIBRAIRIE :

eErr est un entier
eErr =3DAPI(sNomDLL,"gflLibraryInit")//eErr est egal =E0 0



Chargement de l'image :
eErr =3DAPI(sNomDLL,"gflLoadBitmap",
&szNomFichierSource,&EPointeurBitmap, &strLoadParams, "Null")

//eErr ici est egal =E0 0


EPointeurBitmap:Type //Valeur 7960
EPointeurBitmap:Origin //Valeur 1416
EPointeurBitmap:Width // Ensuite tous est =E0 0
EPointeurBitmap:Height
EPointeurBitmap:BytesPerLine
EPointeurBitmap:LinePadding
EPointeurBitmap:BitsPerComponent
EPointeurBitmap:ComponentsPerPixel
EPointeurBitmap:BytesPerPixel
EPointeurBitmap:Xdpi
EPointeurBitmap:Ydpi
EPointeurBitmap:TransparentIndex
EPointeurBitmap:ColorUsed
EPointeurBitmap:ColorMap
EPointeurBitmap:Data
EPointeurBitmap:Comment
EPointeurBitmap:MetaData


Ici Tous est =E0 0
strLoadParams:Flags
strLoadParams:FormatIndex
strLoadParams:ImageWanted
strLoadParams:Origin
strLoadParams:ColorModel
strLoadParams:LinePadding
strLoadParams:DefaultAlpha
strLoadParams:Reserved1
strLoadParams:Reserved2
strLoadParams:Width
strLoadParams:Height
strLoadParams:Offset
strLoadParams:ChannelOrder
strLoadParams:ChannelType
strLoadParams:PcdBase
strLoadParams:EpsDpi
strLoadParams:EpsWidth
strLoadParams:EpsHeight
strLoadParams:LutType
strLoadParams:Reserved3
strLoadParams:LutData
strLoadParams:LutFilename



eErr =3D API(sNomDLLEtendue,"gflExportIntoClipboard", &EPointeurBitmap)
//eErr est =E0 0




PressePapier(IMG_Image1)

//Rien ne s'affiche ?????????????




Si quelqu'un peut eclairer ma lanterne se serait sympa
Merci =E0 tous d'avance.

5 réponses

Avatar
Romain PETIT
a formulé ce samedi :
Bonjour à tous,



Bonjour,

J'aimerai réaliser un appli avec la dll de xnview(Utilisation non
commercial à usage personnel) pour charger une
image --> faire une rotation / redimensionnement / l'ajouter au presse
papier et la recuperer sous windev pour l'afficher et eventuellement
l'enregistrer et je bloque au niveau du chargement !!!
j'ai utilisé le code de romain petit que je remerci pour son aide.
D'aprés l'aide la dll si eErr = 0 alors pas d'erreur.


[...]
Si quelqu'un peut eclairer ma lanterne se serait sympa
Merci à tous d'avance.



Plusieurs choses :
- les structures en version 1.93 (celles que j'utilisais pour mon
exemple) ne sont plus à jour par rapport à la version 2.80 en cours
- Il faut charger les paramètres avant de charger l'image
(gflGetDefaultLoadParams)
- Quelle version de WD utilises-tu ?

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
frederic.gandre
Bonjour,
Je suis completement perdu plus je fais des essaies plus je me
perd !!!
J'utilise la version 12 de windev.
Est-ce que vous pouvez verifier mes structures svp ?
CONSTANT
GFL_BINARY = 1
GFL_GREY=2
GFL_COLORS= 4
GFL_RGB 
GFL_RGBA 2
GFL_BGR d
GFL_ABGR= 128
GFL_BGRA= 256
GFL_ARGB= 512
GFL_CMYK= 1024
GFL_TOP_LEFT =0
GFL_BOTTOM_LEFT= 2
GFL_TOP_RIGHT =1
GFL_BOTTOM_RIGHT= 3
GFL_CM_RGB=0
GFL_CM_GREY=1
GFL_CM_CMY=2
GFL_CM_CMYK=3
GFL_CM_YCBCR=4
GFL_CM_YUV16=5
GFL_CM_LAB=6
GFL_CM_LOGLUV=7
GFL_CM_LOGL=8
FIN
structLOAD_CALLBACK est une structure
Read est un entier sans signe
Tell est un entier sans signe
Seek est un entier sans signe
FIN
structGFL_COLORMAP est une structure
Red est un entier sans signe sur 2 octets%6
Green est un entier sans signe sur 2 octets%6
Blue est un entier sans signe sur 2 octets%6


FIN

structBITMAP est une structure
Type est un entier sur 2 octets
Origin est un entier sans signe sur 2 octets
Width est un entier
Height est un entier
BytesPerLine est un entier sans signe
LinePadding est un entier sur 2 octets
BitsPerComponent est un entier sans signe sur 2 octets
ComponentsPerPixel est un entier sans signe sur 2 octets
BytesPerPixel est un entier sans signe sur 2 octets
Xdpi est un entier sans signe sur 2 octets
Ydpi est un entier sans signe sur 2 octets
TransparentIndex est un entier sur 2 octets
ColorUsed est un entier
ColorMap est un structGFL_COLORMAP
Data est un entier //pointeur sur Data
Comment est un entier //pointeur sur Comment
MetaData est un entier //pointeur sur Metadata
FIN

structLOAD_PARAMS est une structure
Flags est un entier sans signe
FormatIndex est un entier
ImageWanted est un entier
Origin est un entier sans signe sur 2 octets
ColorModel est un structBITMAP
LinePadding est un entier sans signe
DefaultAlpha est un entier sans signe sur 1 octet
Reserved1 est un entier sans signe sur 1 octet
Reserved2 est un entier sans signe sur 2 octets
Width est un entier
Height est un entier
Offset est un entier sans signe
ChannelOrder est un entier sans signe sur 2 octets
ChannelType est un entier sans signe sur 2 octets
PcdBase est un entier sans signe sur 2 octets
EpsDpi est un entier sans signe sur 2 octets
EpsWidth est un entier
EpsHeight est un entier
Read est un structLOAD_CALLBACK
Tell est un structLOAD_CALLBACK
Seek est un structLOAD_CALLBACK

FIN


structFILE_INFORMATION est une structure
Type est un structBITMAP
Origin est un entier
Width est un entier
Height est un entier
FormatIndex est un entier
FormatName est une chaîne sur 8
Description est une chaîne
Xdpi est un entier sans signe sur 2 octets
Ydpi est un entier sans signe sur 2 octets
BitsPerComponent est un entier sans signe sur 2 octets
ComponentsPerPixel est un entier sans signe sur 2 octets
NumberOfImages est un entier
FileSize est un entier sans signe sur 4 octets
ColorModel est un entier
Compression est un entier
CompressionDescription est une chaîne

FIN
strLoadParams est une structLOAD_PARAMS
EPointeurBitmap est un structBITMAP
StrLOAD_CALLBACK est une structLOAD_CALLBACK
StrFILE_INFORMATION est une structFILE_INFORMATION

eErr = AppelDLL32(sNomDLL,"gflLibraryInit")// eErr =0
eErr = API(sNomDLL,"gflLoadBitmap", szNomFichierSource,
&EPointeurBitmap, &strLoadParams, "Null")//eErr=0

Merci
Avatar
frederic.gandre
Je me permet de faire un Up pour savoir si une ame charitable peut
m'aider ?
Avatar
Romain PETIT
a présenté l'énoncé suivant :
Je me permet de faire un Up pour savoir si une ame charitable peut
m'aider ?



La doc n'est plus à jour...
En récupérant les exemples en VB6, on peut voir que les structures ont
évoluées...

Tu peux peut-être préférer une autre solution, par exemple à l'aide de
wia automation (petit runtime à télécharger) wiaut.dll
http://msdn.microsoft.com/en-us/library/ms630827(VS.85).aspx

Par exemple, pour faire une rotation de 90°
http://msdn.microsoft.com/en-us/library/ms630819(VS.85).aspx
Ca donne en WD (j'ai testé) :

szImageSource est une chaîne ASCIIZ sur 255 = "D:Mes documentsMes
imagesessai.bmp"
szImageDest est une chaîne ASCIIZ sur 255 = "D:Mes documentsMes
imagesessai90.bmp"
oFichierImage est un objet Automation dynamique
oProcessImage est un objet Automation dynamique
oFichierImage = allouer un objet Automation "WIA.ImageFile"
oProcessImage = allouer un objet Automation "WIA.ImageProcess"
oFichierImage>>LoadFile(szImageSource)
oProcessImage>>Filters>>Add(oProcessImage>>FilterInfos("RotateFlip")>>FilterID)
oProcessImage>>Filters(1)>>Properties("RotationAngle")>>Value = 90
oFichierImage = oProcessImage>>Apply(oFichierImage)
oFichierImage>>SaveFile(szImageDest)
Multitâche(-1)
libérer oFichierImage
libérer oProcessImage

A+


--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Gilles le nouveau
a couché sur son écran :
Je me permet de faire un Up pour savoir si une ame charitable peut
m'aider ?



Je ne peux pas t'aider pour Xnview , juste pour te rapeller que sur
unsenet on ne peux pas faire un UP ;)