Home All Groups Group Topic Archive Search About

Setting the compression when creating the multipage Tif files in Vb.net

Author
19 Feb 2006 11:58 AM
Ira
I was successful in creating the multipage Tif files in VB.net using
the following the following code:

   Public Sub SaveSeveralOnePageFilesInADir(ByVal DrNm As String, ByVal

resultFl As String)


        Dim pages As Bitmap = Nothing
        Dim PgCnt As Integer
        Dim ix As Integer


        Dim fl As String


        If Dir$(resultFl) <> "" Then
            Kill(resultFl)
        End If


        '---------------------------------


        Dim enc As System.Drawing.Imaging.Encoder =
System.Drawing.Imaging.Encoder.SaveFlag


                Dim info As System.Drawing.Imaging.ImageCodecInfo =
Nothing


        For Each ice As System.Drawing.Imaging.ImageCodecInfo In
System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders


            If ice.MimeType = "image/tiff" Then


                info = ice


            End If


        Next


                Dim ep As System.Drawing.Imaging.EncoderParameters =
New System.Drawing.Imaging.EncoderParameters(1)


        fl = Dir$(DrNm + "\*.*", FileAttribute.Normal +
FileAttribute.Archive)
        ix = 0
        Do While fl <> ""
            fl = UCase$(fl)
            If InStr(fl, ".JPG") <> 0 Or InStr(fl, ".GIF") <> 0 Then
                ix = ix + 1
                fl = DrNm + "\" + fl
                If ix = 1 Then


                    ep.Param(0) = New
System.Drawing.Imaging.EncoderParameter(enc,
CType(System.Drawing.Imaging.EncoderValue.MultiFrame, Long))


                    pages = Image.FromFile(fl)
                    pages.Save(resultFl, info, ep)
                Else
                                        ep.Param(0) = New
System.Drawing.Imaging.EncoderParameter(enc,
CType(System.Drawing.Imaging.EncoderValue.FrameDimensionPage, Long))


                    Dim bm As Bitmap = Image.FromFile(fl)
                    pages.SaveAdd(bm, ep)
                End If
            End If
            fl = Dir$()
        Loop


               ep.Param(0) = New
System.Drawing.Imaging.EncoderParameter(enc,
CType(System.Drawing.Imaging.EncoderValue.Flush, Long))


                pages.SaveAdd(ep)


    End Sub


My big problem now is that I was not able to find information on how I
can
also set the compression that I need for the pages of those multipage
Tif
files. For example, for the black and white images in a multipage Tiff
file,
the compression should be CCITT4, and, for the color images in a
multipage
Tif file, the compression should be JPEG medium compression with the
medium
resolution. How can it be accomplished?


Thank you very much.


Irene S.

Author
19 Feb 2006 12:11 PM
Ken Tucker [MVP]
Hi,

http://www.bobpowell.net/generating_multipage_tiffs.htm

Ken
------------
Show quoteHide quote
"Ira" <iren***@ifat.com> wrote in message
news:1140350337.704053.261010@o13g2000cwo.googlegroups.com...
>I was successful in creating the multipage Tif files in VB.net using
> the following the following code:
>
>   Public Sub SaveSeveralOnePageFilesInADir(ByVal DrNm As String, ByVal
>
> resultFl As String)
>
>
>        Dim pages As Bitmap = Nothing
>        Dim PgCnt As Integer
>        Dim ix As Integer
>
>
>        Dim fl As String
>
>
>        If Dir$(resultFl) <> "" Then
>            Kill(resultFl)
>        End If
>
>
>        '---------------------------------
>
>
>        Dim enc As System.Drawing.Imaging.Encoder =
> System.Drawing.Imaging.Encoder.SaveFlag
>
>
>                Dim info As System.Drawing.Imaging.ImageCodecInfo =
> Nothing
>
>
>        For Each ice As System.Drawing.Imaging.ImageCodecInfo In
> System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders
>
>
>            If ice.MimeType = "image/tiff" Then
>
>
>                info = ice
>
>
>            End If
>
>
>        Next
>
>
>                Dim ep As System.Drawing.Imaging.EncoderParameters =
> New System.Drawing.Imaging.EncoderParameters(1)
>
>
>        fl = Dir$(DrNm + "\*.*", FileAttribute.Normal +
> FileAttribute.Archive)
>        ix = 0
>        Do While fl <> ""
>            fl = UCase$(fl)
>            If InStr(fl, ".JPG") <> 0 Or InStr(fl, ".GIF") <> 0 Then
>                ix = ix + 1
>                fl = DrNm + "\" + fl
>                If ix = 1 Then
>
>
>                    ep.Param(0) = New
> System.Drawing.Imaging.EncoderParameter(enc,
> CType(System.Drawing.Imaging.EncoderValue.MultiFrame, Long))
>
>
>                    pages = Image.FromFile(fl)
>                    pages.Save(resultFl, info, ep)
>                Else
>                                        ep.Param(0) = New
> System.Drawing.Imaging.EncoderParameter(enc,
> CType(System.Drawing.Imaging.EncoderValue.FrameDimensionPage, Long))
>
>
>                    Dim bm As Bitmap = Image.FromFile(fl)
>                    pages.SaveAdd(bm, ep)
>                End If
>            End If
>            fl = Dir$()
>        Loop
>
>
>               ep.Param(0) = New
> System.Drawing.Imaging.EncoderParameter(enc,
> CType(System.Drawing.Imaging.EncoderValue.Flush, Long))
>
>
>                pages.SaveAdd(ep)
>
>
>    End Sub
>
>
> My big problem now is that I was not able to find information on how I
> can
> also set the compression that I need for the pages of those multipage
> Tif
> files. For example, for the black and white images in a multipage Tiff
> file,
> the compression should be CCITT4, and, for the color images in a
> multipage
> Tif file, the compression should be JPEG medium compression with the
> medium
> resolution. How can it be accomplished?
>
>
> Thank you very much.
>
>
> Irene S.
>