Beschreibung:
Hier mal wieder ein kleines und kurz zusammengepinseltes Control.
UnlockedPictureBox. Diese Picture-Box kann Bilder laden und auf ganz einfache Weise wieder in dasselbe File speichern. (ohne den nervigen "Allgemeiner Fehler in GDI+").
Dieses Control darf frei verwendet werden.
Wer irgendwelche Fehler im Code findet, der darf sie (die Fehler) behalten.
Gruss
Programmierhans
using System;
using System.Windows.Forms;
using System.IO;
namespace UnlockedPictureBox
{
/// <summary>
/// Zusammenfassung für UnlockedPictureBox.
/// </summary>
public class UnlockedPictureBox:PictureBox
{
#region Fields
private string _FileName;
private FileStream _FileStream;
#endregion
#region Constructor / IDisposable
public UnlockedPictureBox()
{
}
protected override void Dispose(bool disposing)
{
if (this.Image!=null)
{
this.Image.Dispose();
}
if (this._FileStream!=null)
{
this._FileStream.Close();
}
base.Dispose (disposing);
}
#endregion
#region Public Methods
public void LoadFromFile(string pFileName)
{
this._FileName=pFileName;
if (this._FileStream!=null)
{
this._FileStream.Close();
}
this._FileStream=new System.IO.FileStream(pFileName,System.IO.FileMode.OpenOrCreate);
this.Image=System.Drawing.Image.FromStream(this._FileStream);
}
public bool Save()
{
bool ret=false;
if (this._FileStream!=null && this.Image!=null)
{
this.Image.Save(this._FileStream,this.Image.RawFormat);
ret=true;
}
return ret;
}
public bool Save(string pFileName)
{
bool ret=false;
if (this.Image!=null)
{
if (pFileName!=this._FileName)
{
FileStream fsNew=new System.IO.FileStream(pFileName,System.IO.FileMode.OpenOrCreate);
this.Image.Save(fsNew,this.Image.RawFormat);
if (this._FileStream!=null)
{
this._FileStream.Close();
this._FileStream=null;
}
this._FileStream=fsNew;
//Reload the File from THIS-File
this.Image=System.Drawing.Image.FromStream(this._FileStream);
this._FileName=pFileName;
}
else
{
this.Save();
}
ret=true;
}
return ret;
}
#endregion
}
}
Schlagwörter: Image / FileStream / LoadFromFile / Save
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...