Este es código Antonio:
Code: Select all
hBitmap es el handle después de cargar el bmp desde disco
hDC := CreateDC("DISPLAY",NIL,NIL,NIL)
hDCMem := CreateCompatibleDC( 0 ) //hDC )
hDCMemDest := CreateCompatibleDC( 0 )
hOldBmp := SelectObject( hDCMem, hBitmap )
newHeight := 100 // Nueva altura por ejemplo
BitBlt( hDCMem, 0, 0, :nWidth, newHeight, hDCMemDest, 0, 0, SRCCOPY )
// Ahora necesito guardar hDCMem como un nuevo bitmap en disco
//--------- Con FreeLibrary ---------
nFormat := FI_GETFILETYPE( cFile, 0 )
hDib := FI_LOAD( nFormat, cFile, 0 )
hInfoH := FI_GETINFOHEADER( hDib )
hInfo := FI_GETINFO( hDib )
hBits := FI_GETBITS( hDib )
hBmp = CreateDiBitmap( hDCMemDest, hInfoH, CBM_INIT, hBits, hInfo, DIB_RGB_COLORS )
// hBmp devuelve 0, no lo crea
Y aquí me he quedado...
Manuel, lo que pretendo es teniendo un bitmap monocromo en disco con altura 1000 pixeles, copiarlo a disco recortándolo a 300 pixeles de altura.
Me gustaría hacerlo sin GDI+, tengo FWH de final de 2014 y me gustaría que fuera lo más fácil posible.
También podría hacerlo con freeImage, pero no he encontrado la forma.
Gracias,
Joaquín Martínez