1

私のVBプロジェクトには、画像をスキャンしてからコントラストを変更できる機能があります。スキャンして保存しC:\temp\my_img.tifます。

winform画像では で表示されますPictureBox

コントラスト関数を次のようimg.Save("C:\temp\my_img.tif", ImageFormat.Tiff)に設定すると、 「GDI+ で一般的なエラーが発生しました」というメッセージが表示されます。. ただし、を別のfilenameものに設定すると、問題なく動作します。

では、保存する前に使用済みの画像を解放するにはどうすればよいですか?

要するに、関数全体:

Sub setContrast(ByVal C As Single)
    'filename(1) ia a "global" variable that stores the used file path, in this case "C:\temp\my_img.tif"

    Dim img As Image = Image.FromFile(filename(1)) '<--- I get the image

    'A bunch of contrast stuff in some rows.....

    'Here, i should release the image...

    img.Save(filename(1), ImageFormat.Tiff) '<---Tries to save

    PictureBox1.Refresh()
End Sub
4

1 に答える 1

1

Disposed別のファイル名を使用して保存し、必要に応じて古いファイルを削除し、Image事前に持っていた古いファイルと一致するように新しいファイルの名前を変更します。

差出人Image.FromFile

が破棄されるまで、ファイルはロックされたままになりますImage

同じインスタンスがファイルに戻ろImageうとしている場合、これが何らかの形で回避されていることを示す言葉は他にありません。Save

于 2013-01-22T14:54:29.423 に答える