1
Как вы преобразовываете Gdk.Pixbuf
(_pixbuf ниже) в Windows Forms (System.Drawing
) Растровое изображение? Ниже приведен код, который использует Gtk.DotNet.Graphics
, но он просто дает белое изображение. Есть ли лучший, более прямой способ, который работает? Я использую C# в Mono, но я могу преобразовать, если у вас есть ответ на другом языке.Преобразование Gdk.Pixbuf в System.Drawing.Bitmap?
public System.Drawing.Bitmap toBitmap() {
Gdk.Pixmap pixmap, mask;
_pixbuf.RenderPixmapAndMask(out pixmap, out mask, 255);
System.Drawing.Graphics graphics = Gtk.DotNet.Graphics.FromDrawable(pixmap);
return new System.Drawing.Bitmap(width, height, graphics);
}
Очень приятно! Удобство и простота в одном пакете! –
Кажется, что это не работает (указав png, jpeg или bmp) с pixbuf с прозрачностью ... может быть ошибка в Gdk.Pixbuf.SaveToBuffer() или в считывании буфера Bitmap (я использую Моно). Попробуем сначала удалить прозрачность ... –
Пробовал это сегодня утром. Работал для чистого PNG и ICO, а не для BMP и JPEG. Пока JPEG не поддерживает прозрачность, BMP поддерживает альфа-каналы. Не знаю, почему BMP здесь не работает. –