Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI, C++] Zrzut ekranu

Ostatnio zmodyfikowano 2011-08-22 10:23
Autor Wiadomość
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 12:28:41
też tak pomyślałem, ale wolałem się upewnić...
//EDIT: Niestety, dalej jest źle...
P-39504
pekfos
» 2011-08-20 12:32:31
Wiem :P
spróbuj dać na koniec każdego rzędu 0.
P-39505
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 12:37:21
sorry, ale na koniec każdego rzędu tzn. gdzie?
P-39508
pekfos
» 2011-08-20 12:39:26
Jednak nie.
http://www.januszg.hg.pl/teksty/budowa_pliku_bmp.html
zamieniłeś wszędzie te 4 na 3 i BitCount z 32 na 24?
P-39509
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 12:43:10
zmieniłem, i dalej nic.
P-39510
pekfos
» 2011-08-20 12:44:12
daj aktualny kod.
P-39511
xevuel
Temat założony przez niniejszego użytkownika
» 2011-08-20 12:45:13
C/C++
void screen( HWND okno, char * plik )
{
    HDC _dc = GetWindowDC( okno );
    RECT re;
    GetWindowRect( okno, & re );
    int w = re.right, h = re.bottom;
    HDC dc = CreateCompatibleDC( 0 );
    HBITMAP bm = CreateCompatibleBitmap( _dc, w, h );
    SelectObject( dc, bm );
    StretchBlt( dc, 0, 0, w, h, _dc, 0, 0, w, h, SRCCOPY );
    void * f = CreateFile( plik, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 );
    void * buf = new char[ w * h * 3 ];
    GetObject( bm, 84, buf );
    HDC ddd = GetDC( 0 );
    HDC dc2 = CreateCompatibleDC( ddd );
    tagBITMAPINFO bi;
    bi.bmiHeader.biSize = sizeof( bi.bmiHeader );
    bi.bmiHeader.biWidth = w;
    bi.bmiHeader.biHeight = h;
    bi.bmiHeader.biPlanes = 1;
    bi.bmiHeader.biBitCount = 24;
    bi.bmiHeader.biCompression = 0;
    bi.bmiHeader.biSizeImage = 0;
    CreateDIBSection( dc, & bi, DIB_RGB_COLORS, & buf, 0, 0 );
    GetDIBits( dc, bm, 0, h, buf, & bi, DIB_RGB_COLORS );
   
    BITMAPFILEHEADER bif;
    bif.bfType = MAKEWORD( 'B', 'M' );
    bif.bfSize = w * h * 3 + 54;
    bif.bfOffBits = 54;
   
    BITMAPINFOHEADER bii;
    bii.biSize = 40;
    bii.biWidth = w;
    bii.biHeight = h;
    bii.biPlanes = 1;
    bii.biBitCount = 24;
    bii.biCompression = 0;
    bii.biSizeImage = w * h * 3;
   
    DWORD r;
    WriteFile( f, & bif, sizeof( bif ), & r, NULL );
    WriteFile( f, & bii, sizeof( bii ), & r, NULL );
    WriteFile( f, buf, w * h * 3, & r, NULL );
    CloseHandle( f );
}
P-39512
pekfos
» 2011-08-20 12:49:17
bi.bmiHeader.biSizeImage = 0;

imo źle.
P-39513
1 « 2 » 3 4 5
Poprzednia strona Strona 2 z 5 Następna strona