嵌りました。
GDI+ で ... の エラー メッセージ と ご対面。
なんじゃ、こりゃ?。
今迄、画像をハンドリングしても、上書き保存のケースは皆無でした。
餅は餅屋で、 画像編集ソフトの出番だったのです。
でも、出会ってしまいました。 このエラー!。
GDI+ で汎用エラーが発生しました。
きっと、あまり、再び、出会う機会も少ない、 つまり、次には、忘れているでしょうから、書き残して置きましょう。
もう一回、書いて置きます。
ファイルから画像を表示確認の上、変更し上書き保存のケース。
例えば、 Me.PictureBox1.Image = Image.FromFile(fn) fn はファイル名。
そして、(別の) Me.PictureBox2.Image.Save(fn, System.Drawing.Imaging.ImageFormat.Jpeg)
これは 駄目! です。
fn がオープンされていて、セーブ出来ません。
対処方法は、 こう です。
ファイルを直接 PictureBox に割り当てず、Bitmap として展開して、さっさと閉じてしまう事です。
Dim fn As String = "ほにゃらら.jpg"
Dim fs As IO.FileStream
fs = New IO.FileStream(fn, IO.FileMode.Open, IO.FileAccess.Read)
Dim bmp As Bitmap = Bitmap.FromStream(fs)
fs.Close()
fs.Dispose()
Me.PictureBox1.Image = New Bitmap(bmp)
bmp.Dispose()
'Me.PictureBox1.Image = Image.FromFile(fn)
'Image.FromFile で開くと、Image.Save で GDI+ が Error を吐く
後始末がいい加減なコードかも?。
保存側は弄る必要はありません。
きっと、次には 忘れていますよ。 きっと。
0 件のコメント:
コメントを投稿