GetEncoderInfo
-
I am working on a multiframe .Tiff editor. I am trying to save several .tiff files into one file. There is C# example in http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdrawingimagingencoderclasssaveflagtopic.asp I have converted it to VB .NET. private sub SaveTiff() Dim multi As Bitmap Dim page2 As Bitmap Dim page3 As Bitmap Dim myImageCodecInfo As ImageCodecInfo Dim myEncoder As Encoder Dim myEncoderParameter As EncoderParameter Dim myEncoderParameters As EncoderParameters ' Create three Bitmap objects. multi = New Bitmap("0.tif") page2 = New Bitmap("1.tif") page3 = New Bitmap("2.tif") ' Get an ImageCodecInfo object that represents the TIFF codec. myImageCodecInfo = GetEncoderInfo("image/Tiff") ' Create an Encoder object based on the GUID ' for the SaveFlag parameter category. myEncoder = Encoder.SaveFlag ' Create an EncoderParameters object. ' An EncoderParameters object has an array of EncoderParameter ' objects. In this case, there is only one ' EncoderParameter object in the array. myEncoderParameters = New EncoderParameters(1) ' Save the first page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.MultiFrame)) myEncoderParameters.Param(0) = myEncoderParameter multi.Save("C:\Projects\FaxView\save.tif", myImageCodecInfo, myEncoderParameters) ' Save the second page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.FrameDimensionPage)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(page2, myEncoderParameters) ' Save the third page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.FrameDimensionPage)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(page3, myEncoderParameters) ' Close the multiple-frame file. myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.Flush)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(myEncoderParameters) end sub Private Shared Function GetEncoderInfo(ByVal mimeType As [String]) As ImageCodecInfo Dim j As Integer Dim encoders() As ImageCodecInfo encoders = ImageCodecInfo.GetImageEncoders() j = 0
-
I am working on a multiframe .Tiff editor. I am trying to save several .tiff files into one file. There is C# example in http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdrawingimagingencoderclasssaveflagtopic.asp I have converted it to VB .NET. private sub SaveTiff() Dim multi As Bitmap Dim page2 As Bitmap Dim page3 As Bitmap Dim myImageCodecInfo As ImageCodecInfo Dim myEncoder As Encoder Dim myEncoderParameter As EncoderParameter Dim myEncoderParameters As EncoderParameters ' Create three Bitmap objects. multi = New Bitmap("0.tif") page2 = New Bitmap("1.tif") page3 = New Bitmap("2.tif") ' Get an ImageCodecInfo object that represents the TIFF codec. myImageCodecInfo = GetEncoderInfo("image/Tiff") ' Create an Encoder object based on the GUID ' for the SaveFlag parameter category. myEncoder = Encoder.SaveFlag ' Create an EncoderParameters object. ' An EncoderParameters object has an array of EncoderParameter ' objects. In this case, there is only one ' EncoderParameter object in the array. myEncoderParameters = New EncoderParameters(1) ' Save the first page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.MultiFrame)) myEncoderParameters.Param(0) = myEncoderParameter multi.Save("C:\Projects\FaxView\save.tif", myImageCodecInfo, myEncoderParameters) ' Save the second page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.FrameDimensionPage)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(page2, myEncoderParameters) ' Save the third page (frame). myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.FrameDimensionPage)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(page3, myEncoderParameters) ' Close the multiple-frame file. myEncoderParameter = New EncoderParameter(myEncoder, CLng(EncoderValue.Flush)) myEncoderParameters.Param(0) = myEncoderParameter multi.SaveAdd(myEncoderParameters) end sub Private Shared Function GetEncoderInfo(ByVal mimeType As [String]) As ImageCodecInfo Dim j As Integer Dim encoders() As ImageCodecInfo encoders = ImageCodecInfo.GetImageEncoders() j = 0
I figured it out: 'Get an ImageCodecInfo object that represents the TIFF codec. myImageCodecInfo = GetEncoderInfo("image/Tiff") :-D Private Shared Function GetEncoderInfo(ByVal mimeType As [String]) As ImageCodecInfo Dim i As Integer Dim encoders() As ImageCodecInfo encoders = ImageCodecInfo.GetImageEncoders() For i = 0 To (encoders.Length - 1) If (encoders(i).MimeType = mimeType) Then Return encoders(i) End If Next i End Function 'GetEncoderInfo Zulfikar Ali