[C con Clase] Guardar como ; Guardar un bitmap
Juan Antonio Hernández Álvarez
juanan_picones en hotmail.com
Lun Abr 6 23:53:44 CEST 2009
hola buenas
en mi aplicacion (tipo paint) cargo un bitmap desde archivo abrir y pinto encima de el o directamente pinto en un bitmap compatible que creo para usar el doble buffer y pintar sobre el mismo que parametros de la estructura OPENFILENAME
debo rellenar para guardar dicho bitmap
caso de que lo cargo desde archivo
hdc = GetDC(hwnd);
//Cargamos el bitmap desde archivo abrir
hbitmap = LoadImage((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),ofn.lpstrFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
SelectObject(hdcmem,hbitmap);
GetObject(hbitmap,sizeof(BITMAP),&bm);
ancho = bm.bmWidth;
alto = bm.bmHeight;
MoveToEx(hdcmem,0,alto-1,NULL);
LineTo(hdcmem,ancho, alto-1);
MoveToEx(hdcmem,ancho-1,0,NULL);
LineTo(hdcmem,ancho-1, alto);
DeleteObject(hbitmap);
ReleaseDC(hwnd,hdc);
o bien si lo creo yo(hoja en blanco)
hdc = GetDC(hwnd);
GetClientRect(hwnd, &rect);
ancho = rect.right;
alto = rect.bottom;
hbitmap=CreateCompatibleBitmap(hdc, ancho, alto);
SelectObject(hdcmem,hbitmap);
FillRect(hdcmem, &rect, GetStockObject(WHITE_BRUSH));
ReleaseDC(hwnd,hdc);
lo cargo y luego tengo funciones utilizando hdcmem [ hdcmem = CreateCompatibleDC(hdc); ] para pintar encima del bitmap
es decir brochas etc..
como haria para guardar el bitmap en el ke estoy pintando, se invocar el cuadro de dialogo de guardar como pero lo que no se es como debo usar el bitmap o hcmem(hdc)( que uso para pintar para dibujar encima[lo voy modificando y pintando sobre el en WM_PAINT con StretchBlt(hdc, 0, 0, rect.right, rect.bottom, hdcmem, 0, 0, ancho, alto, SRCCOPY); ] pasarlo a la estructura OPENFILENAME y guardarlo como imagen(.bmp)
y ademas en caso de solo guardar que fucncion utilizariamo para guardar sin pasar por el cuadro de dialogo.
Un saludo y muchas gracias me estais ayudando mucho
Juanan
_________________________________________________________________
Más rápido, sencillo y seguro. Descárgate ya el nuevo Internet Explorer 8 ¡Es gratis!
http://www.vivelive.com/ie8
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090406/45c420ea/attachment.html>
Más información sobre la lista de distribución Cconclase