tein tämmöisen koodin winxp:lle. tarkoitus olisi odottaa 5 sekuntia, sitten ottaa kuva näytöstä ja tallentaa bmp:nä samaan kansioon tiedostonimellä ".bmp". kuva on oikean kokoinen, mutta välillä enemmän välillä vähemmän vääristynyt. vääristyneellä tarkoitan sitä että kuva on "vetelä" joistain kohtaa ja joissain kohdissa värit ovat vääriä. mistä johtuu? tässä koodi:
#include"windows.h"
#include"stdio.h"
#pragma comment(lib,"gdi32.lib")
int main(){
Sleep(5e3);
HWND hwnd=GetDesktopWindow();
HDC dc=GetWindowDC(hwnd);
RECT r;
GetWindowRect(hwnd,&r);
int w=r.right-r.left,h=r.bottom-r.top;
if(w65535)exit(0);
int b[54]={66,77,0,0,0,0,0,0,0,0,54,0,0,0,40,0,0,0,w%6,GetGValue(w),0,0,h%6,GetGValue(h),0,0,1,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
FILE* f=fopen(".bmp","a");
int i;
for(i=0;i=0;y--){
for(int x=0;x
#include"windows.h"
#include"stdio.h"
#pragma comment(lib,"gdi32.lib")
int main(){
Sleep(5e3);
HWND hwnd=GetDesktopWindow();
HDC dc=GetWindowDC(hwnd);
RECT r;
GetWindowRect(hwnd,&r);
int w=r.right-r.left,h=r.bottom-r.top;
if(w65535)exit(0);
int b[54]={66,77,0,0,0,0,0,0,0,0,54,0,0,0,40,0,0,0,w%6,GetGValue(w),0,0,h%6,GetGValue(h),0,0,1,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
FILE* f=fopen(".bmp","a");
int i;
for(i=0;i=0;y--){
for(int x=0;x
Vastaukset 1
Vanhimmat
vika lienee BMP:n kirjoituksessa, tarpeellinen "bittisyys", oikeat kentät yms.
Vilkaisehan vaikka tätä "BMPFile.cpp"
metodi BMPFile::SaveBMP
http://www.codeguru.com/cpp/g-m/bitmap/capturing/article.php/c4915/