« フラッシュカードを作る(経過2) | トップページ | フラッシュカードを作る(経過4) »

2011年8月12日 (金)

フラッシュカードを作る(経過3)

 新しいフラッシュカードを作るには、既存画像を読み込む・WEBからD&D・クリップボードから貼り付けるが考えられますが、基本的な既存画像を読み込むところでつまってしまいました。
 いや、読み込むのはできるのですが、

 Dim fs As New System.IO.FileStream(Fullpath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
 FlashCardData.Add(New FlashCard("テキスト",Image.FromStream(fs)))

読み込んだものをこのルーチンで保存するとGDI+エラーになってしまうのです。

 これはぐぐるといくつかの報告がヒットし、FromFileで読み込むとおきないことが分かりました。ところが今度は読み込んだ画像ファイルにロックがかかってしまう弊害があります。実害はないとはいえ、気持ちがよくありません。これもあちこち調べて

 Dim fs As New System.IO.FileStream(Fullpath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
 Dim Bm As Bitmap
 Bm = New Bitmap(Image.FromStream(fs))
 FlashCardData.Add(New FlashCard("テキスト", Bm))

いったんビットマップオブジェクトにしてから読み込むとGDI+エラーが回避できることが分かりました。作成再開にこぎつけました。

|

« フラッシュカードを作る(経過2) | トップページ | フラッシュカードを作る(経過4) »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: フラッシュカードを作る(経過3):

« フラッシュカードを作る(経過2) | トップページ | フラッシュカードを作る(経過4) »