OVH Cloud OVH Cloud

SDK XnView

9 réponses
Avatar
Gilles G.
Hello.

Est-ce que quelqu'un utilise ici le SKD de XnView.

Je ne recois pas de messages d'erreur avec, mais j'ai du faire une
erreur de conversion des structures prérequises pour les DLL, et je ne
vois pas lesquelles.

Si quelqu'un a déjà fait fonctionner ça, je suis preneur ;)

Merci

9 réponses

Avatar
Romain PETIT
Il se trouve que Gilles G. a formulé :
Est-ce que quelqu'un utilise ici le SKD de XnView.



J'ai failli...
Juste une question de licence un peu chère pour une petite appli de
rien du tout...
(attention l'utilisation de la DLL pour une appli commerciale n'est pas
gratuite)
Mais il est clair que si j'ai un projet plus important qui necessite de
gérer des images, je n'hésiterai pas un seconde à utiliser ce SDK.

Je ne recois pas de messages d'erreur avec, mais j'ai du faire une
erreur de conversion des structures prérequises pour les DLL, et je ne
vois pas lesquelles.
Si quelqu'un a déjà fait fonctionner ça, je suis preneur ;)



J'avais testé dans une classe quelques fonctions qui marchaient sans
problème.
J'avais proposé à P.E. Gougelet (l'auteur de la DLL) de mettre à dispo
une classe WD pour toutes les fonctions mais j'ai laissé ça un peu à
l'abandon étant donné que j'utilise une autre solution pour ma petite
appli.

Voici les structures que j'utilisais (pour la version 1.93 de la DLL)

// Déclaration des structures
structSAVE_CALLBACK est une structure
Write est un entier
Tell est un entier
Seek est un entier
Alloc est un entier
Free est un entier
MemoryParam est un entier
FIN

structLOAD_CALLBACK est une structure
Read est un entier
Tell est un entier
Seek est un entier
Alloc est un entier
Free est un entier
MemoryParam est un entier
FIN

structSAVE_PARAMS est une structure
Flags est un entier
FormatIndex est un entier
Compression est un entier sur 2 octets
Quality est un entier sur 2 octets
CompressionLevel est un entier sur 2 octets
Interlaced est un entier sur 1 octet
Progressive est un entier sur 1 octet
Offset est un entier
ChannelOrder est un entier sur 2 octets
ChannelType est un entier sur 2 octets
Callbacks est une structSAVE_CALLBACK
FIN

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

structFILE_INFORMATION est une structure
Type est un entier sur 2 octets
Origin est un entier sur 2 octets
Width est un entier
Height est un entier
FormatIndex est un entier
FormatName est une chaîne fixe sur 8// tableau fixe de 8 entiers sur
1 octet
Description est une chaîne fixe sur 64// tableau fixe de 64 entiers
sur 1 octet
Xdpi est un entier sur 2 octets
Ydpi est un entier sur 2 octets
BitsPerPlane est un entier sur 2 octets
NumberOfPlanes est un entier sur 2 octets
BytesPerPlane est un entier
NumberOfImages est un entier
FileSize est un entier
ColorModel est un entier sur 2 octets
Compression est un entier sur 2 octets
CompressionDescription est une chaîne fixe sur 64// tableau fixe de 64
entiers sur 1 octet
NumberOfComment est un entier sur 2 octets
Reserved2 est un entier sur 2 octets
Comment est un entier
FIN

structBITMAP est une structure
Type est un entier sur 2 octets
Origin est un entier sur 2 octets
Width est un entier
Height est un entier
BytesPerLine est un entier
LinePadding est un entier sur 2 octets
Reserved est un entier sur 2 octets
BytesPerPixel est un entier sur 1 octet
BitsPerComponent est un entier sur 1 octet
Xdpi est un entier sur 2 octets
Ydpi est un entier sur 2 octets
TransparentIndex est un entier sur 2 octets
ColorUsed est un entier
ColorMap est un entier
Data est un entier
FIN

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
In article ,
says...
Il se trouve que Gilles G. a formulé :
> Est-ce que quelqu'un utilise ici le SKD de XnView.
J'ai failli...
Juste une question de licence un peu chère pour une petite appli de
rien du tout...
(attention l'utilisation de la DLL pour une appli commerciale n'est pas
gratuite)



L'appli est gratuite, donc pas de souci.

Mais il est clair que si j'ai un projet plus important qui necessite de
gérer des images, je n'hésiterai pas un seconde à utiliser ce SDK.



J'utilisais jusqu'à présent l'ActiveX, mais il ne contient pas la
fonction "ClipBoard" (Toujours pour le même problème).
Alors j'ai pensé tout passer vers le SDK.

une classe WD pour toutes les fonctions mais j'ai laissé ça un peu à
l'abandon étant donné que j'utilise une autre solution pour ma petite
appli.



Gratuite ou payante?

Voici les structures que j'utilisais (pour la version 1.93 de la DLL)



Okay, j'ai remplacé mes structures par les tiennes mais tjs le même pb :

Voici mon code de test :

GFL_LOAD_PARAMS est un sGFL_LOAD_PARAMS
GFL_COLORMAP est un sGFL_COLORMAP
GFL_BITMAP est un sGFL_BITMAP
GFL_FILE_INFORMATION est un sGFL_FILE_INFORMATION


GFL_BITMAP:ColorMap=&GFL_COLORMAP
chImage est une chaîne ASCIIZ sur 255="c:img.jpg"

Trace(API(DLL,"gflLibraryInit"))
Trace(API(DLL,"gflLoadBitmap",&chImage,&GFL_BITMAP,&GFL_LOAD_PARAMS,
&GFL_FILE_INFORMATION))

Trace(API(DLLe,"gflExportIntoClipboard",&GFL_BITMAP))
Trace(GFL_BITMAP:Width,GFL_BITMAP:Height)


J'obtiens
0
0
0
(Donc là tout va bien)

Mais pour width et height j'ai 0 ;-(

Et il y a bien quelque chose qui atterrit sous forme de bitmap dans le
presse papier, mais le contenu est invalide.

Tu vois un problème quelque part??

Merci d'avance,

Gilles.
Avatar
Romain PETIT
Gilles G. avait soumis l'idée :

une classe WD pour toutes les fonctions mais j'ai laissé ça un peu à
l'abandon étant donné que j'utilise une autre solution pour ma petite
appli.





Gratuite ou payante?



Gratuite :
http://www.windevasso.org/cgi-bin/gesmod.exe?exec=VISU&NUMRUBRIQUEV8&MDP=&TYPE=SOURCE&

Tu vois un problème quelque part??



pas trop le temps de regarder en détail maintenant, je jeterai peut
être un oeil ce we ou je te mettrai à dispo la version beta de la
classe...

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
MiF
> J'avais proposé à P.E. Gougelet (l'auteur de la DLL) de mettre à dispo
une classe WD pour toutes les fonctions mais j'ai laissé ça un peu à
l'abandon étant donné que j'utilise une autre solution pour ma petite
appli.




Bonjour,

Serait-il indiscret de te demander quelle solution tu as utilisée ?
J'en recherche une pour une petite appli, moi aussi.

Merci d'avance

Michel Fages
Avatar
Romain PETIT
Dans son message précédent, MiF a écrit :
Serait-il indiscret de te demander quelle solution tu as utilisée ?



http://www.windevasso.org/cgi-bin/gesmod.exe?exec=VISU&NUMRUBRIQUEV8&MDP=&TYPE=SOURCE&

Il s'agissait pour moi de convertir des fichiers BMP en TIFF...

J'en recherche une pour une petite appli, moi aussi.



En fait j'avais demandé à P.E Gougelet s'il pouvait étudier la
possibilité de mettre en place une licence plus adaptée à ma situation.

Aujourd'hui, GflSDK est soumis à une licence du type :
- si logiciel professionel (vendu, usage interne peu importe), quelque
soit le nombre d'exemplaires de l'appli distribuée -> 1 licence payante
Par contre il faut payer autant de licences que d'applis différentes
(mais nombre de copies de l'appli illimité)
- si logiciel freeware ou usage personnel -> pas de royalties

Je lui avais demandé s'il pouvait mettre en place un type de licence
plus chère mais permettant de créer un nombre d'applis illimitées à
diffusion restreinte (le type d'appli que je développe).

Peux-être qu'en lui réiterant ce type de demande...

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
In article ,
says...
Gilles G. avait soumis l'idée :

>> une classe WD pour toutes les fonctions mais j'ai laissé ça un peu à
>> l'abandon étant donné que j'utilise une autre solution pour ma petite
>> appli.
> Gratuite ou payante?
Gratuite :
http://www.windevasso.org/cgi-bin/gesmod.exe?exec=VISU&NUMRUBRIQUEV8&MDP=&TYPE=SOURCE&



Interessant, mais le "Windows XP uniquement" est bien dommage ;)

> Tu vois un problème quelque part??
pas trop le temps de regarder en détail maintenant, je jeterai peut
être un oeil ce we ou je te mettrai à dispo la version beta de la
classe...



L'une ou l'autre des solution me conviennent ;)

Je ne sais pas si mon mail jetable est encore valide
tu peux m'écrire à gilles AT neogie POINT com

Merci d'avance
Avatar
Romain PETIT
Gilles G. a formulé la demande :

pas trop le temps de regarder en détail maintenant, je jeterai peut
être un oeil ce we ou je te mettrai à dispo la version beta de la
classe...





L'une ou l'autre des solution me conviennent ;)



Je ne peux pas mettre à disposition la classe, d'une part parce qu'elle
est vraiment à l'état embryonnaire (je n'ai implémenté que les
fonctions que je voulais tester) et d'autre part parce que j'ai besoin
de l'aval de P.E. Gougelet (même si au premier contact c'était OK pour
lui).

Je t'ai quand même pondu un exemple (c'est vrai qu'elle n'est pas si
facile à manipuler cette DLL) qui doit correspondre à ce que tu veux
faire :

http://rompetit.free.fr/Pub/WD7/fg_GFL_Exemple_8Couleurs_PressePapier.html

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
In article ,
says...
Gilles G. a formulé la demande :

>> pas trop le temps de regarder en détail maintenant, je jeterai peut
>> être un oeil ce we ou je te mettrai à dispo la version beta de la
facile à manipuler cette DLL) qui doit correspondre à ce que tu veux
faire :
http://rompetit.free.fr/Pub/WD7/fg_GFL_Exemple_8Couleurs_PressePapier.html



Juste une dernière info.

J'ai commencé à faire également une classe pour remplacer l'ActiveX,
mais je me heurte à un problème, la sauvegarde me donne une erreur
fatale quand j'utilise l'index du format Jpeg à savoir 0

Quand j'utilise n'importe quel autre index, l'image est bien
correctement sauvée...

As tu une idée?
Avatar
Gilles G.
In article ,
says...
Gilles G. a formulé la demande :

>> pas trop le temps de regarder en détail maintenant, je jeterai peut
>> être un oeil ce we ou je te mettrai à dispo la version beta de la
>> classe...

> L'une ou l'autre des solution me conviennent ;)

Je ne peux pas mettre à disposition la classe, d'une part parce qu'elle
est vraiment à l'état embryonnaire (je n'ai implémenté que les



Bon, finalement, devant l'échec, j'ai écrit à PY Gougelet ;)
Il m'a gentillement envoyé une version de l'activeX avec le
ExportToClipboard ;)