VB.Net convertir un JPG en Tiff System.Drawing.Bitmap() ??? [Résolu]

cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 13:23 - Dernière réponse : cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention
- 4 nov. 2008 à 17:02
Bonjour à tous...

J'aimerais transformer un JPG en Tiff. J'ai fouillé un peu sur le site et j'ai trouvé un exécutable intéressant.

J'ai donc modifié légèrement le code pour me donner cela..
Dim

Nfichier
As
String  'la variable vaut:"c:\test\Photo.jpg"
If InStr(Rep_FichierExt,
"jpg")
Then
   Dim Convertisseur
As
New
System.Drawing.Bitmap(Nfichier)
   Convertisseur.Save(Nfichier, System.Drawing.Imaging.ImageFormat.Tiff)
   'Libère les ressources utilisées par Convertisseur
   Convertisseur.Dispose()
   
'Supprime l'image originale si l'option de la supprimer est activée
   Kill(Nfichier)

End
IfMon problème est que le programme Bug à la déclarationde la variable Convertisseur.
J'ai un message d'erreur qui dit: Le paramètre n'est pas valide

Il me manque un Imports ???
La déclaration de ma variable ne devrait pas se faire à cette endroit ???

Merci de me dire qu'est ce qui ne va pas...
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 14:51
3
Merci
Bonjour,

Dim img
As System.Drawing.Imageimg = Image.FromFile(

"nom du fichier")
a+

Merci gillardg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de gillardg
Meilleure réponse
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 16:43
3
Merci
Bonjour,

quand tu as finis ton traitement sur l'image
release l'object

img.Dispose
ou
img=Nothing

ça devrait aller

a+

Merci gillardg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de gillardg
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 14:00
0
Merci
Bonjour,

Public
Function Jpeg2Tiff(
ByVal img
As System.Drawing.Image,
ByVal FilePath
As
String)
As
Boolean

Tryimg.Save(FilePath &

".tiff", System.Drawing.Imaging.ImageFormat.Tiff)

Return
True

Catch ex
As Exception

Return
False

End
Try

End
Functiona+
Commenter la réponse de gillardg
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 14:23
0
Merci
Salut  merci beaucoup pour la fonction...


Mais j'ai un petit bug... 1 erreur...


Ca dit:
Erreur 1: Value of type 'String' cannot be converted to 'System.Drawing.Image'. 




Je ne suis pas encore super habile avec ces type de fonctiones :(


Dans mon code qui est dans ma Fonction Mise_Ajour j'ai appeleé ta fonction par ce code...



'Donne le nom du fichier avec extension



Rep_FichierExt = Microsoft.VisualBasic.Right(Nfichier, Len(Nfichier) - 26)


'Donne le nom du fichier sans l'extension

Rep_Fichier = Microsoft.VisualBasic.Left(Rep_FichierExt, Len(Rep_FichierExt) - 4)


If
InStr(Rep_FichierExt,

"jpg"
)

Then
   
Jpeg2Tiff(Rep_FichierExt, Nfichier)
........



Comment dois-je déclaré la variable img??? 

merci beaucoup pour ton aide.
Commenter la réponse de cs_MagDix
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 15:06
0
Merci
Salut...


encore moi...


ok j'ai mis ton code dans ma fonction Mise_a_Jour



'Donne le nom du fichier avec extension



Rep_FichierExt = Microsoft.VisualBasic.Right(Nfichier, Len(Nfichier) - 26)







Dim
ImageJPG

As
System.Drawing.Image
ImageJPG = Image.FromFile(Rep_FichierExt)


If
InStr(Rep_FichierExt,

"jpg"
)

Then

Jpeg2Tiff(ImageJPG, Nfichier)
.......


J'ai un erreur quand j'arrive à la ligne en grtas (voir plus haut dansle message)
Ca me dit FileNotFoundException was unhandled


mon image se nomme image.jpg donc img = "image.jpg"


Où est l'erreur....


J'ai essayé de mettre le chemin complet et j'ai l'erreur Mémoire insuffisante...


Dim ImageJPG
As System.Drawing.Image
ImageJPG = Image.FromFile(Nfichier)

Merci de ton aide
Commenter la réponse de cs_MagDix
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 15:22
0
Merci
Bonjour,

je ne comprends pas pourquoi tu utilises
VisualBasic.Left

VisualBasic.Right

utilise les fonctions du framework ! 

la classe est system.io.path

a+
Commenter la réponse de gillardg
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 15:36
0
Merci
merci je ne connaissais pas cette classe...

mais je ne sais pas ce que devrait valoir ImageJPG

est-ce que ImageJPG doit valoir un fichier par exemple avec cette ligne de code,
ImagesJPG = Image.jpg ???

Dim

ImageJPG
As System.Drawing.Image
ImageJPG = Image.FromFile(Nfichier)

Selon toi, en utilisant la classe System.IO.Path tout devrait etre OK car j'ai exactement le même problème...???

Voici le code..
Rep_FichierExt Path.GetFileName(Nfichier) 'Rep_FichierExt "Image.jpg"

Dim ImageJPG
As System.Drawing.Image
ImageJPG = Image.FromFile(Rep_FichierExt)
If

Path.GetExtension(Nfichier) =
".jpg"
Then
   Jpeg2Tiff(ImageJPG, Nfichier)

........

J'ai un erreur ou c'est bisare et je ne devrait pas avoir de bug

Merci encore
Commenter la réponse de cs_MagDix
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 15:52
0
Merci
Bonjour,
"J'ai un erreur ou c'est bisare et je ne devrait pas avoir de bug"

ou , sur quelle instruction???????????????
sorry mais ma boule de cristelle est en vacances

ton fichier jpg, est ce que tu arrives à l'afficher dans une picturebox???
si non alors le problème vient de ton fichier ou de la façon dont tu trouves son chemin !!!!!!

a+
Commenter la réponse de gillardg
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 16:10
0
Merci
Rebonjour


désolé pour ta boule de cristale...  héhéhéh :P


ok je vais essayer d'être plus clair...


Dans ma Fonction Mise_A_Jour j'ai mis le code suivant:


For
Each Nfichier
In sDossier
   
'Donne le nom du fichier avec extension
   Rep_FichierExt = Path.GetFileName(Nfichier)



If
Path.GetExtension(Nfichier) =

".jpg"



Then
   
Dim
ImageJPG

As
System.Drawing.Image
    ImageJPG = Image.FromFile(Rep_FichierExt)



'Rep_FichierExt = "image.jpg"
   
   'Appelle de la fonction pour la conversion   

   Jpeg2Tiff(ImageJPG, Nfichier)

Donc le bug vient-il du fait que je suis dans une fonctione ??? Ma variable Rep_FichierExt c'est ok qu'elle valle image.jpg ???
Et oui mon fichier image.jpg s'ouvre avec n'importe quelle programme pour voir les jpg
Commenter la réponse de cs_MagDix
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 4 nov. 2008 à 16:25
0
Merci
Bonjour,

dans ton programme arrives tu à l'afficher dans une picturebox????????????

a+
Commenter la réponse de gillardg
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 16:33
0
Merci
Salut gillard... j'ai trouvré

le bug venait de cette ligne ImageJPG = Image.FromFile(Nfichier)

Effectiuvement j'avais essayé ce code auparavant mais mon .jpg avait un erreur.... mais tout est Ok...

Dernier problème....

je convertis mon fichier .jpg en .tiff mais je doit supprimer ce fichier jpg de mon répertoire et ca me dit toujours que c'Est impossible car le processus ne peut pas accéder au fichier, car il est en cours d'utilisation par un autre processus...

Ma dernière question,, comment faire pour fermer définitivement le fichier .jpg afin que je puisse le supprimer... avec la commande

My

.Computer.FileSystem.DeleteFile(Rep_Delete)

Merci de ta grande aide... :)
Commenter la réponse de cs_MagDix
cs_MagDix 532 Messages postés lundi 5 juin 2006Date d'inscription 6 octobre 2012 Dernière intervention - 4 nov. 2008 à 17:02
0
Merci
merci beaucoup
Commenter la réponse de cs_MagDix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.