I found some code I used to create Pixbufs from RGB
System.Drawing.Bitmap objects:
public Gdk.Pixbuf CreateFromResource(Bitmap bitmap)
{
BitmapData data = bitmap.LockBits(new Rectangle(0, 0,
bitmap.Width, bitmap.Height,
PixelFormat.Format24bppRgb);
IntPtr scan = data.Scan0;
int size = bitmap.Width * bitmap.Height * 3;
byte[] bdata = new byte[size];
Gdk.Pixbuf pixbuf = null;
unsafe {
byte* p = (byte*)scan;
for(int i = 0; i < size; i++)
bdata[i] = p[i];
}
pixbuf = new Gdk.Pixbuf(bdata, false, 8,
bitmap.Width, bitmap.Height,
data.Stride, null);
bitmap.UnlockBits(data);
return pixbuf;
}
On Thu, 2008-08-07 at 21:55 -0700, egrath wrote:
> Hello,
>
> can someone please tell me what's the current way of getting a Gdk.Pixbuf
> from an byte[] full of RGB Values? I know that there is an overload of the
> Gdk.Pixbuf constructor which would normally accomplish this, but according
> to my tests and Bug ID 362951 it seems to be broken in 2.0 Preview.
>
> I use the following statement:
>
> Gdk.Pixbuf picture = new Gdk.Pixbuf( m_RawData, Gdk.Colorspace.Rgb, false,
> 8, m_RawResolution.Width, m_RawResolution.Height, m_RawResolution.Width * 3,
> null );
>
> and get the following exception:
>
> Unhandled Exception: System.InvalidProgramException: Invalid IL code in
> (wrapper
> native-to-managed) GdkSharp.PixbufDestroyNotifyWrapper:NativeCallback
> (intptr,i
> ntptr): IL_0030: call 0x00000006
>
> Any ideas?
>
> Thanks,
> Egon
>
_______________________________________________
Gtk-sharp-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list