Hallo zusammen,
es hört sich so an als würde ich davon ausgehen, dass die Datenbank für einen Qualitätsverlust verantwortlich ist. Das ist nicht die ganze Wahrheit. Der Verlust könnte überall unterwegs passiert sein. Vielleicht habe ich aber auch irgendeine Einstellung vergessen.
Folgendes Szenario:
Ich habe eine WinForm-Anwendung die ist über LINQ to SQL mit einer Datenbank verbunden. In eine der Tabelle können Bilder geladen werden. Die Tabelle sieht wie folgt aus:
Wenn ich die Bilder in die Datenbank schreiben will muss ich sie erst in ein byte array umwandeln, so:
Der output dieser Methode wird dann auch in die Datenbank geschrieben. Wenn ich das Bild wieder auslesen will muss das binary array wieder zu einem Image umgewandelt werden:
Das funktioniert auch alles super nur hier ist mein Problem. Angenommen ich lade folgendes Bild in die Datenbank:
![Käsebrot.png Käsebrot.png](https://pics.computerbase.de/forum/attachments/368/368458-ad6dbf2667dff3b4a34bccd6ab204ca3.jpg?hash=rW2_Jmff87)
Jetzt möchte ich das Bild in einer PictureBox anzeigen. Das sieht dann plötzlich so aus:
![fail.png fail.png](https://pics.computerbase.de/forum/attachments/368/368459-978a551d0593244b4248f19c07925b8c.jpg?hash=l4pVHQWTJE)
Für den SizeMode-Parameter der PictureBox habe ich schon sämtliche Werte ausprobiert (Normal, Stretchimage, AutoSize,CenterImage,Zoom), nichts hilft.
Kann da jemand helfen? Liegt das vielleicht am Bild selbst?
Gruß und danke im Voraus.
es hört sich so an als würde ich davon ausgehen, dass die Datenbank für einen Qualitätsverlust verantwortlich ist. Das ist nicht die ganze Wahrheit. Der Verlust könnte überall unterwegs passiert sein. Vielleicht habe ich aber auch irgendeine Einstellung vergessen.
Folgendes Szenario:
Ich habe eine WinForm-Anwendung die ist über LINQ to SQL mit einer Datenbank verbunden. In eine der Tabelle können Bilder geladen werden. Die Tabelle sieht wie folgt aus:
Code:
CREATE TABLE [dbo].[Bilder] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Bild] IMAGE NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Wenn ich die Bilder in die Datenbank schreiben will muss ich sie erst in ein byte array umwandeln, so:
Code:
public static byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
using (MemoryStream ms = new MemoryStream())
{
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
}
Der output dieser Methode wird dann auch in die Datenbank geschrieben. Wenn ich das Bild wieder auslesen will muss das binary array wieder zu einem Image umgewandelt werden:
Code:
public static Image ByteArrayToImage(byte[] byteArrayIn)
{
using (MemoryStream ms = new MemoryStream(byteArrayIn))
{
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
Das funktioniert auch alles super nur hier ist mein Problem. Angenommen ich lade folgendes Bild in die Datenbank:
![Käsebrot.png Käsebrot.png](https://pics.computerbase.de/forum/attachments/368/368458-ad6dbf2667dff3b4a34bccd6ab204ca3.jpg?hash=rW2_Jmff87)
Jetzt möchte ich das Bild in einer PictureBox anzeigen. Das sieht dann plötzlich so aus:
![fail.png fail.png](https://pics.computerbase.de/forum/attachments/368/368459-978a551d0593244b4248f19c07925b8c.jpg?hash=l4pVHQWTJE)
Für den SizeMode-Parameter der PictureBox habe ich schon sämtliche Werte ausprobiert (Normal, Stretchimage, AutoSize,CenterImage,Zoom), nichts hilft.
Kann da jemand helfen? Liegt das vielleicht am Bild selbst?
Gruß und danke im Voraus.