Load() de FreeImage retourne null
Bonjour
je développe une application à l'aide de la lib FreeImage
En essayant de charger une image TIF dont les caractéristiques sont les suivantes :
Couleur : 256 nuances de gris.
Compression : JPEG (Resolution JPEG: Moyenne, Qualité JPEG: Moyenne).
Résolution : 300 x 300 ppp.
Taille : (Largeur: 117,5 mm Hauteur : 169,1 mm).
La fonction Load() retourne une variable de type FIBITMAP mais qui est null !!! (adresse = 0x0; propriété IsNull = true)
je pense que tout le probleme vient du fait que l'image est compressée avec JPEG, car si je modifie ce paramètre dans le logiciel Imaging et que je réessaye de l'ouvrir ca marche !
ce que je veux c'est de trouver un moyen en utilisant la lib FreeImage pour réussir à ouvrir les images avec ces caractéristiques.
Merci pour votre aide.
Utilisation de FreeImage.dll
Bonjour,
Est-ce que quelqu'un aurait des info à me communiquer sur freeimage.dll
notament le cheminement avant de pouvoir l'utiliser sous windev.
Charger la dll---> Charger l'image en memoire avec loadU ---> Faire le traitement de l'image rotation etc... --->Sauvegarder avec Freeimage_save---> decharger la dll
HDLL est un entier système
DLLname est une chaîne
valeur_retour est une chaîne
DLLname = "c:\FreeImage.dll"
HDLL = ChargeDLL(DLLname)
SI HDLL>0 ALORS
valeur_retour = AppelDLL32(DLLname, "_FreeImage_LoadU@12","FIF_BMP","c:\orange.bmp","BMP_DEFAULT")
Info(valeur_retour)
DéchargeDLL(HDLL)
SINON
Erreur("Chargement de la DLL impossible...")
FIN
http://downloads.sourceforge.net/fre...eImage3110.pdf
Mais bien evidemment ca ne fonctionne pas !
Est-ce que quelqu'un peut m'aider ???
Merci d'avance
WINDEV et Utilisation de FreeImage.dll
Bonjour fredericasse,
"Charger la dll---> Charger l'image en memoire avec loadU ---> Faire le traitement de l'image rotation etc... --->Sauvegarder avec Freeimage_save---> decharger la dll"
Progression logique OK
HDLL est un entier système
DLLname est une chaîne
valeur_retour est une chaîne --> NON, valeur_retour est un Entier
DLLname = "c:\FreeImage.dll" -- > moi je copie la DLL dans le dossier de mon exécutable, comme ça je ne l'oublie pas
HDLL = ChargeDLL(DLLname)
SI HDLL>0 ALORS
valeur_retour = AppelDLL32(DLLname, "_FreeImage_LoadU@12","FIF_BMP","c:\orange.bmp","BMP_DEFAULT")
valeur_retour = AppelDLL32(DLLname, "_FreeImage_LoadU@12", 0, "c:\orange.bmp", 0)
("FIF_BMP" et "BMP_DEFAULT" sont des entiers)
(valeur_retour est un handle renvoyé qui sera utilisé pour les traitements, rotation, etc)
Info(valeur_retour)
(penser à utiliser "FreeImage_Unload" pour libérer la mémoire)
DéchargeDLL(HDLL)
SINON
Erreur("Chargement de la DLL impossible...")
FIN
Voila, sur le peu que je connais, bon développement