|
ありがとうございます。
とりあえず、掲示板に書かれた通りのまま、
既に保存してある画像がイメージを読み込む方法を試してみました。
Using StreamIn As New MemoryStream(File.ReadAllBytes(bmpFilename))
Dim dec As New PngBitmapDecoder(StreamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None)
Using StreamOut As FileStream = File.Open(bmpFilename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)
Dim enc As New BitmapEncoder
Dim frm As BitmapFrame = BitmapFrame.Create(dec.Frames(0))
enc.Frames.Add(frm)
Dim meta As BitmapMetadata = DirectCast(frm.Metadata, BitmapMetadata)
meta.Comment = "Data"
enc.Frames.Add(BitmapFrame.Create(frm, Nothing, meta, Nothing))
enc.Save(StreamOut)
End Using
End Using
しかし、
Dim enc As New BitmapEncoder
のところで、
'MustInherit' として宣言されたクラスでは、'New' を使用することはできません。
というエラーが出ます。
仕方なく、
Using StreamIn As New MemoryStream(File.ReadAllBytes(bmpFilename))
Dim dec As New PngBitmapDecoder(StreamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None)
Using StreamOut As FileStream = File.Open(bmpFilename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)
Dim enc As BitmapEncoder = Nothing
Dim frm As BitmapFrame = BitmapFrame.Create(dec.Frames(0))
enc.Frames.Add(frm)
Dim meta As BitmapMetadata = DirectCast(frm.Metadata, BitmapMetadata)
meta.Comment = "Data"
enc.Frames.Add(BitmapFrame.Create(frm, Nothing, meta, Nothing))
enc.Save(StreamOut)
End Using
End Using
のようにすると、
enc.Frames.Add(frm)
のところでインスタンスが設定されていない、というエラーが出ます。
一体、どうすれば良いですか?
更に、画像をファイルではなく、イメージから読み込む方法も試してみたのですが、
Dim bitmapStream As MemoryStream = New MemoryStream
img.Save(bitmapStream, ImageFormat.Png)
bitmapStream.Position = 0
Dim enc As BitmapEncoder = Nothing
Dim dec As New PngBitmapDecoder(StreamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None)
Dim frm As BitmapFrame = BitmapFrame.Create(dec.Frames(0))
enc.Frames.Add(BitmapFrame.Create(bitmapStream))
Dim meta As BitmapMetadata = DirectCast(frm.Metadata, BitmapMetadata)
meta.Comment = "Data"
enc.Frames.Add(BitmapFrame.Create(frm, Nothing, meta, Nothing))
Dim StreamOut As FileStream = File.Open(bmpFilename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)
enc.Save(StreamOut)
Dim dec As New PngBitmapDecoder(StreamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None)
のところで、画像ファイルのパスを指定する必要があります。
どのようにすれば、一度も画像ファイルを書き出さずに
文字列を書き込んだ画像ファイルを保存することができますか?
|