C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■89602 / 12階層)  画像ファイルのヘッダーに文字列を埋め込む方法
□投稿者/ なり (9回)-(2018/12/07(Fri) 19:12:32)
ありがとうございます。

とりあえず、掲示板に書かれた通りのまま、
既に保存してある画像がイメージを読み込む方法を試してみました。


        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)


のところで、画像ファイルのパスを指定する必要があります。

どのようにすれば、一度も画像ファイルを書き出さずに
文字列を書き込んだ画像ファイルを保存することができますか?



編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[11]: 画像ファイルのヘッダーに文字列を埋め込む方法 /リンクス →Re[13]: 画像ファイルのヘッダーに文字列を埋め込む方法 /魔界の仮面弁士
 
上記関連ツリー

画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 14:39) #89567
Re[1]: 画像ファイルのヘッダーに文字列を埋め込む方法 / kiku (18/12/05(Wed) 15:14) #89568
  └ Re[2]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 15:32) #89569
    ├ Re[3]: 画像ファイルのヘッダーに文字列を埋め込む方法 / リンクス (18/12/05(Wed) 15:56) #89571
    └ Re[3]: 画像ファイルのヘッダーに文字列を埋め込む方法 / kiku (18/12/05(Wed) 15:48) #89570
      ├ Re[4]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 16:27) #89573
      │└ Re[5]: 画像ファイルのヘッダーに文字列を埋め込む方法 / Hongliang (18/12/05(Wed) 16:57) #89575
      └ Re[4]: 画像ファイルのヘッダーに文字列を埋め込む方法 / PANG2 (18/12/05(Wed) 16:26) #89572
        └ Re[5]: 画像ファイルのヘッダーに文字列を埋め込む方法 / PANG2 (18/12/05(Wed) 16:49) #89574
          └ Re[6]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 17:04) #89576
            └ Re[7]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 20:13) #89577
              └ Re[8]: 画像ファイルのヘッダーに文字列を埋め込む方法 / Hongliang (18/12/05(Wed) 21:24) #89578
                └ Re[9]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/05(Wed) 21:36) #89579
                  └ Re[10]: 画像ファイルのヘッダーに文字列を埋め込む方法 / Hongliang (18/12/05(Wed) 22:13) #89580
                    └ Re[11]: 画像ファイルのヘッダーに文字列を埋め込む方法 / リンクス (18/12/06(Thu) 12:33) #89585
                      └ 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/07(Fri) 19:12) #89602 ←Now
                        └ Re[13]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/07(Fri) 19:29) #89603
                          └ Re[14]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/07(Fri) 21:01) #89604
                            └ Re[15]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/08(Sat) 13:19) #89605
                              └ Re[16]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/08(Sat) 15:05) #89606
                                ├ Re[17]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/09(Sun) 18:18) #89610
                                └ Re[17]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/10(Mon) 00:58) #89611
                                  └ Re[18]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/10(Mon) 10:38) #89612
                                    └ Re[19]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/10(Mon) 13:35) #89617
                                      └ Re[20]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/10(Mon) 16:04) #89620
                                        └ Re[21]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/10(Mon) 18:12) #89622
                                          └ Re[22]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/10(Mon) 20:00) #89624
                                            └ Re[23]: 画像ファイルのヘッダーに文字列を埋め込む方法 / 魔界の仮面弁士 (18/12/10(Mon) 20:36) #89625
                                              └ Re[24]: 画像ファイルのヘッダーに文字列を埋め込む方法 / なり (18/12/11(Tue) 22:22) #89635 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信