Pitäisi tallentaa byte-buffer jpeg tiedostoon C#:lla.
byte[] data=new byte [lev*kor*3]; // rgb
Gl.glReadPixels(0,0, lev, kor, GlGL_RGB, Gl.GL_UNSIGNED_BYTE, data);.
Eli data taulukossa on kuvadata.
Mites tuon data bufferin saa tallennettua?
Jotenkin pitää varmaan luoda Image tai Bitmap olio ja siihen datat? En vielä ainakaan löytänyt miten tehdään..
byte[] data=new byte [lev*kor*3]; // rgb
Gl.glReadPixels(0,0, lev, kor, GlGL_RGB, Gl.GL_UNSIGNED_BYTE, data);.
Eli data taulukossa on kuvadata.
Mites tuon data bufferin saa tallennettua?
Jotenkin pitää varmaan luoda Image tai Bitmap olio ja siihen datat? En vielä ainakaan löytänyt miten tehdään..
Vastaukset 2
Vanhimmat
Lainattua koodia codeproject.com sivustolta:
//save the picture as jpeg
Image img = Image.FromFile( fBitmapName ".bmp" );
img.Save( fBitmapName ".jpg", ImageFormat.Jpeg );
img.Dispose();
Jos tuossa olisi jotain vinkkiä... :)
Image luokka ei käynyt mutta Bitmapilla onnistu.
Tuo tallentaminen (Save) olikin sama ja helposti käy.
for loopit jossa asetetaan joka pisteen väri, on *hidas*. 1024*1024 bitmapin tekeminen kestää jopa AMD3500 koneella..
byte[] data=new byte [W*H*3];
Gl.glReadPixels(0,0, W, H, Gl.GL_RGB, Gl.GL_UNSIGNED_BYTE, data);
Bitmap bitmap=new Bitmap(W, H);
Color col=new Color();
int ind=0;
for(int h=H-1; h>0; h--)
{
for(int w=0; w