Hallo und schönen Nachmittag zusammen!
Ja ja, kauf habe ich das eine Problem gelöst, komme ich auch schon mit dem nächsten 😃
Ich möchte eine Databinding für eine Picturebox verwenden, und vorher das anzuzeigende Bild entsprechend verkleinern und einpassen.
Wenn gar kein Bild vorhanden ist, gibt diese Funktion "null" zurück. Mit diesem Wert
kann die Picturebox allerdings nichts anfangen und schmeisst eine Exception.
Hier der Code dazu:
Im Main:
pBoxTagCover.DataBindings.Add(new Binding("Image", this.trackBinder_, "TagCover"));
Und in der Klasse:
public BitmapTagCover
{
get { return ResizeTagCover(); }
}
private BitmapResizeTagCover()
{
Bitmap imgOrig = null;
Bitmap imgShown = null;
if (this.tagCovers_.Count > 0)
{
double divideBy, divideByW, divideByH;
Graphics g;
imgOrig = this.tagCovers_[0];
divideByW = ((double)imgOrig.Width / 100);
divideByH = ((double)imgOrig.Height / 100);
if (divideByW > 1 || divideByH > 1)
{
if (divideByW > divideByH)
divideBy = divideByW;
else divideBy = divideByH;
imgShown = new Bitmap((int)((double)imgOrig.Width / divideBy), (int)((double)imgOrig.Height / divideBy));
imgShown.SetResolution(imgOrig.HorizontalResolution, imgOrig.VerticalResolution);
g = Graphics.FromImage(imgShown);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(imgOrig, new Rectangle(0, 0, (int)((double)imgOrig.Width / divideBy), (int)((double)imgOrig.Height / divideBy)), 0, 0, imgOrig.Width, imgOrig.Height, GraphicsUnit.Pixel);
g.Dispose();
}
else
{
imgShown = new Bitmap(imgOrig.Width, imgOrig.Height);
imgShown.SetResolution(imgOrig.HorizontalResolution, imgOrig.VerticalResolution);
g = Graphics.FromImage(imgShown);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(imgOrig, new Rectangle(0, 0, imgOrig.Width, imgOrig.Height), 0, 0, imgOrig.Width, imgOrig.Height, GraphicsUnit.Pixel);
g.Dispose();
}
imgOrig.Dispose();
}
return imgShown;
}
Erstens bekomme ich von meiner Funktion den Typ Bitmap zurück und die Picturebox braucht einen Wert vom Typ Image, oder?
Und zweitens kann eben die Picturebox, falls kein Coverbild vorhanden, nichts mit dem Wert null anfangen!?
Hat jemand von euch eine Idee und/oder Tipp für mich?
DANKE
atmosfear
Hallo atmosfear,
Erstens bekomme ich von meiner Funktion den Typ Bitmap zurück und die Picturebox braucht einen Wert vom Typ Image, oder?
das ist kein Problem, weil jede Bitmap ein Image ist.
Und zweitens kann eben die Picturebox, falls kein Coverbild vorhanden, nichts mit dem Wert null anfangen!?
Gibt statt null ein ein Pixel großes "leeres" Bild zurück.
herbivore
@herbivore
Danke herbivore, hast mir sehr weiter geholfen!
Jetzt habe ich "nur" mehr ein riiiiesen Speicherproblem,
aber sehe selbst meinen Beitrag im anderen Forum.
DANKE
atmosfear