13 Aug 2007

Bitmap lock

Pour éviter de verrouiller un fichier Bitmap lors de son utilisation, voici comment charger un Bitmap. Sinon quand you essayerez d'accéder au fichier, vous obtiendrez une exception "can not access file".

To avoid to lock a Bitmap file, here is how to load a Bitmap. Else, when you access to the file, you will have a "can not access file" exception.

using (Stream s = File.OpenRead(@"\My Documents\My Pictures\Waterfall.jpg"))
Bitmap _backImage = (Bitmap)Bitmap.FromStream(s);


4 comments:

DX Jas said...

Thanks for the fix. Its kind of silly how new Bitmap(path) and Bitmap.FromStream(path) work differently.

Anonymous said...

Enfin, plud de lock!!!!
Merci beaucoup pour cette solution.
S.R.

Anonymous said...

Thanks. You saved my day.

Anonymous said...

D'après la documentation du constructeur Bitmap(Stream):
"You must keep the stream open for the lifetime of the Bitmap.".
Donc la solution avec un stream temporaire ne marche pas.

En revanche on peut creer un MemoryStream à partir du fichier et le passer au constructeur de Bitmap. Le MemoryStream ne doit pas etre detruit (pas de using ou dispose).