Public Function GetImageFromCatiaFile(infile As String) As Image
Try
Dim xByte As Byte
Dim bPicEnd As Boolean
Dim fs_in As New FileStream(infile, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs_in)
Dim fs_out As New MemoryStream()
Dim bw As New BinaryWriter(fs_out)
While Not (br.BaseStream.Position = br.BaseStream.Length) And Not bPicEnd
xByte = br.ReadByte
If xByte = 255 Then ' FF
xByte = br.ReadByte
If xByte = 216 Then ' D8
xByte = br.ReadByte
If xByte = 255 Then ' FF
bw.Write(CType(255, Byte))
bw.Write(CType(216, Byte))
bw.Write(CType(255, Byte))
While Not (br.BaseStream.Position = br.BaseStream.Length)
xByte = br.ReadByte
bw.Write(CType(xbyte, Byte))
If xByte = 255 Then ' FF
xByte = br.ReadByte
If xByte = 217 Then ' D9
bw.Write(CType(xbyte, Byte))
bPicEnd = True
Else
bw.Write(CType(xbyte, Byte))
End If
End If
End While
End If
End If
End If
End While
Dim img As Image = Image.FromStream(fs_out)
br.Close()
bw.Close()
fs_in.Close()
fs_out.Close()
Return img
Catch
Return Nothing
End Try
End Function