2値のtifデータを24ビットカラーのbitmapへ
- 題名: 2値のtifデータを24ビットカラーのbitmapへ
- 著者: さかな
- 日時: 2007/03/29 0:13:36
- ID: 19389
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 2値のtifデータを24ビットカラーのbitmapへ
- 著者: さかな
- 日時: 2007/03/29 21:55:09
- ID: 19394
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 2値のtifデータを24ビットカラーのbitmapへ
- 著者: さかな
- 日時: 2007/03/29 22:47:42
- ID: 19399
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こちらのサイトの.NetTips の「品質を指定して画像を保存する」を応用して、
「2値のtifデータを読み込み、24ビットカラーのbitmapデータとして保存する。」
というのを目的に作ってみたのですが、
保存されたものは、ビットの深さが1のbitmapデータでした。
(PixelFormatで調べて見るとFormat1bppIndexedです。)
安易に、”Encoder.ColorDepth, 24L”としたぐらいでは駄目なのでしょうか?
どなたか、ご教授の程よろしくお願いいたします。
Public Shared Sub SaveImage(ByVal fileName As String)
Dim bmp As Bitmap = New Bitmap(fileName)
Dim eps As New System.Drawing.Imaging.EncoderParameters(1)
Dim ep As New System.Drawing.Imaging.EncoderParameter( _
System.Drawing.Imaging.Encoder.ColorDepth, 24L)
eps.Param(0) = ep
Dim ici As System.Drawing.Imaging.ImageCodecInfo
ici = GetEncoderInfo("image/bmp")
Dim ext As String = ici.FilenameExtension.Split(";"c)(0)
ext = System.IO.Path.GetExtension(ext).ToLower()
Dim saveName As String = System.IO.Path.ChangeExtension(fileName, ext)
bmp.Save(saveName, ici, eps)
End Sub
Private Shared Function GetEncoderInfo(ByVal mineType As String) _
As System.Drawing.Imaging.ImageCodecInfo
Dim encs() As System.Drawing.Imaging.ImageCodecInfo = _
System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()
Dim enc As System.Drawing.Imaging.ImageCodecInfo
For Each enc In encs
If enc.MimeType = mineType Then
Return enc
End If
Next
Return Nothing
End Function
参考元 http://dobon.net/vb/dotnet/graphics/encoderparameters.html