2.FileStream を使ったロックされない画像表示(21_Pic_02) (旧、SampleNo.253) |
1.一般的な方法で画像を表示した場合画像ファイルがロックされるテスト 2.FileStream を使ったロックされない画像表示 3. 4. 5. 6. こちらのサンプルは、PictureBox コントロールに関するプロパティやメソッドを使った、画像の表示方法や PictureBox に表示した画像の保存方法等を主体にしたサンプルを紹介しております。 画像の描画及び加工が主体となるようなサンプルは、描画・画像関係の方に掲載しておりますので、そちらも合わせてご覧下さい。 |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.一般的な方法で画像を表示した場合画像ファイルがロックされるテスト |
PictureBox コントロールの Image プロパティをデザイン時に手動でファイルに設定する場合、または 実行時に FromFile メソッドを使用する場合に発生します。 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1.一般的な方法で画像を表示した場合画像ファイルがロックされるテスト 'Image.FromFile メソッドを使用して PictureBox コントロール内の画像を読み込むと、 '画像ファイルはアプリケーションの起動時にロックされます。 '画像ファイルはアプリケーションの実行中、ロックされたままになります。 '実行時に Image プロパティを [なし] に設定しても、画像ファイルはロックされます。 With PictureBox1 .SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize .Image = System.Drawing.Image.FromFile("..\..\..\data_pic\test1.jpg") End With 'ロックされたままなのでエラーが発生します。 Try System.IO.File.Move("..\..\..\data_pic\test1.jpg", "..\..\..\data_pic\test1.jpg") Catch ex As Exception MessageBox.Show(ex.Message) End Try '次のテストにそなえて一旦削除しておきます。 'Call sChangeImage(PictureBox1) '一旦、Image を消去 End Sub |
2.FileStream を使ったロックされない画像表示 |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '2.FileStream を使ったロックされない画像表示 'FileStream オブジェクトを使用して読み込み表示するとロックされません。 Using fs As System.IO.FileStream = New System.IO.FileStream("..\..\..\data_pic\test1.jpg", _ System.IO.FileMode.Open, System.IO.FileAccess.Read) PictureBox1.Image = System.Drawing.Image.FromStream(fs) End Using 'ロックされていないかファイル名を変更してみる(エラーは発生しない) 'ただし、Button1 実行後は、ロックされるのでエラーが発生する。(削除しておかないと) Try System.IO.File.Move("..\..\..\data_pic\test1.jpg", "..\..\..\data_pic\test1.jpg") MessageBox.Show("ファイル名を変更しました。") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ロックされるから問題だという事ではありません。 編集中の画像が他で使用されて変更されたりしたら困る場合もありますし、その逆の場合もあります。 使用目的に合わせて読み込み方法を選んで下さい。 |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
ピクチャーボックス |