TIFF MULTIPAGE

Signaler
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Salut,

J'ai plusieurs images et je cherche à les regrouper au sien d'un fichier TIFF multipage à l'aide de GDI+

J'arrive très bien à créé un fichier TIFF ne contenant qu'une seule page, mais pour du multipage je peche.

J'ai trouvé de la doc à cette adresse mais :
   1 - C'est pas en français
   2 - C'est pas en VB

Si quelqu'un veut bien me donner un coup de main, ce serait vraiment sympa.

Bonne prog ++

4 réponses

Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
7
Salut,

Ce code peut peut-être t'aider.
Je suis parti du code trouvé sur la page http://www.bobpowell.net/addframes.htm.
Il créé une image "multi" de 1024*768 pixels (... à adapter) et l'enregistre dans un fichier "multicouche.tiff" en y insérant une série d'images supposées se trouver dans un tableau "layers" :

Dim encoders As System.Drawing.Imaging.ImageCodecInfo() = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders

Dim encoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.SaveFlag
Dim info As System.Drawing.Imaging.ImageCodecInfo = Nothing
For i As Integer = 0 To encoders.Length - 1 Step 1
    If encoders(i).MimeType = "image/tiff" Then
        info = encoders(i)
        Exit For
    End If
Next

Dim parameters As New System.Drawing.Imaging.EncoderParameters(1)
parameters.Param(0) = New System.Drawing.Imaging.EncoderParameter(encoder, CType(System.Drawing.Imaging.EncoderValue.MultiFrame, Long))

Dim multi As New System.Drawing.Bitmap(1024, 768)

'Enregistre l'image
multi.Save("multicouche.tiff", info, parameters)

'Enregistre les differentes couches
parameters.Param(0) = New System.Drawing.Imaging.EncoderParameter(encoder, CType(System.Drawing.Imaging.EncoderValue.FrameDimensionPage, Long))

For i As Integer = 0 To layer.Length - 1 Step 1
    multi.SaveAdd(layer(i), parameters)
Next

'Termine l'enregistrement
parameters.Param(0) = New System.Drawing.Imaging.EncoderParameter(encoder, CType(System.Drawing.Imaging.EncoderValue.Flush, Long))
multi.SaveAdd(parameters)
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Salut,

Merci pour ce bout de code.

Cependant, j'essaie de réaliser cela en VB6 et non en .NET
Et, au vue du code je dirai que .NET fait cela en natif, or en VB6 j'ai impérativement besoin de faire cela à l'aide de GDI+

Bonne prog ++
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
7
ok... désolé de ne pas pouvoir t'aider pour le VB6.
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Merci à toi d'avoir essayé.

Je continue de chercher...

Bonne prog ++