T
tux#
Grünschnabel
Hmm, ich komme einfach nicht weiter.
Ich versuche ein Image aus einem Windows.Forms-Fenster mit GTK#-Methoden (Gdk.Pixbuf) zu bearbeiten. Funktioniert prinzipiell auch.
Das Problem ist, dass die Image-Objekte von Win.Forms und GTK# (logischerweise) unterschiedlich sind. Also muss ich konvertieren.
Folgendes funktioniert:
Allerdings finde ich es eher suboptimal das Bild extra in einer Datei zwischenspeichern zu müssen. Und wenn ich einen stream benutze bekomme ich eine Glib.NullRefereceException bzw. "unleserliches Bildformat"...
So klappt es nicht:
Wo ist der Hund begraben?
Über den Umweg Datei klappt es wie gewünscht, warum nicht über den Stream? Wer hilft mir auf die Sprünge?
Gruss
tux#
Ich versuche ein Image aus einem Windows.Forms-Fenster mit GTK#-Methoden (Gdk.Pixbuf) zu bearbeiten. Funktioniert prinzipiell auch.
Das Problem ist, dass die Image-Objekte von Win.Forms und GTK# (logischerweise) unterschiedlich sind. Also muss ich konvertieren.
Folgendes funktioniert:
Code:
//Windows.Forms Event
void Button1Click(object sender, EventArgs e)
{
pictureBox1.Image.Save("scanfixtest.png", System.Drawing.Imaging.ImageFormat.Png);
//Instanziierung der Gdk#-Klasse
WinPixbuf picRaw = new WinPixbuf();
}
...
public class WinPixbuf
{
public Gdk.Pixbuf pb;
public WinPixbuf()
{
Gtk.Application.Init();
pb = new Gdk.Pixbuf("scanfixtest.png");
pb.Save("scanfixtest_xy.jpg", "jpeg");
}
}
So klappt es nicht:
Code:
void Button1Click(object sender, EventArgs e)
{
System.IO.MemoryStream buffer = new System.IO.MemoryStream();
pictureBox1.Image.Save(buffer, System.Drawing.Imaging.ImageFormat.Png);
WinPixbuf picRaw = new WinPixbuf(buffer);
}
...
public class WinPixbuf
{
private Gdk.Pixbuf pb;
public WinPixbuf(System.IO.MemoryStream stream)
{
Gtk.Application.Init();
pb = new Gdk.Pixbuf(stream);
pb.Save("scanfixtest_xy.jpg", "jpeg");
}
}
Wo ist der Hund begraben?
Über den Umweg Datei klappt es wie gewünscht, warum nicht über den Stream? Wer hilft mir auf die Sprünge?
Gruss
tux#