/*     動画ファイルの作成 1999/ 3/18 宍戸 輝光 */ #include #include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ int i,j; DWORD dwDummy; LPBYTE lpBuf; HANDLE fh; /* フレームデータ用バッファ確保 */ lpBuf=(LPBYTE)GlobalAlloc(GPTR,256*256*240); srand((unsigned)time(NULL)); for (i=0;i<32;i++) /* 最初の画面フラッシュ */ FillMemory(lpBuf+256*256*i,256*256,255-i*8); for (i=0;i<256*256;i++) /* 背景の星空描画 */ if (rand() % 100==0) *(lpBuf+256*256*32+i)=(BYTE)((rand() % 64)+192); for (i=33;i<240;i++) { /* 背景の星空描画 */ CopyMemory(lpBuf+256*256*i+256,lpBuf+(i-1)*256*256,256*255); for (j=0;j<256;j++) if (rand() % 100==0) *(lpBuf+256*256*i+j)=(BYTE)((rand() % 64)+192); } for (i=0;i<96;i++) { *(lpBuf+(i+32)*256*256+32+i*2+(32+i*2)*256)=255-i; *(lpBuf+(i+32)*256*256+32+i*2+(33+i*2)*256)=255-i; *(lpBuf+(i+32)*256*256+33+i*2+(32+i*2)*256)=224-i; } for (i=0;i<192;i++) { if (i<64) { FillMemory(lpBuf+(i+32)*256*256+129*256+255-i*2,i*2,192); FillMemory(lpBuf+(i+32)*256*256+128*256+255-i*2,i*2,224); FillMemory(lpBuf+(i+32)*256*256+127*256+255-i*2,i*2,192); FillMemory(lpBuf+(i+32)*256*256+126*256+255-i*2,i*2,160); } else if (i<128) { FillMemory(lpBuf+(i+32)*256*256+129*256+255-i*2,128,192); FillMemory(lpBuf+(i+32)*256*256+128*256+255-i*2,128,224); FillMemory(lpBuf+(i+32)*256*256+127*256+255-i*2,128,192); FillMemory(lpBuf+(i+32)*256*256+126*256+255-i*2,128,160); } else if (i>127) { FillMemory(lpBuf+(i+32)*256*256+129*256,128-(i-128)*2,192); FillMemory(lpBuf+(i+32)*256*256+128*256,128-(i-128)*2,224); FillMemory(lpBuf+(i+32)*256*256+127*256,128-(i-128)*2,192); FillMemory(lpBuf+(i+32)*256*256+126*256,128-(i-128)*2,160); } } /* ファイル作成 */ fh=CreateFile("test.vid",GENERIC_READ|GENERIC_WRITE,0,NULL, CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); if (fh==INVALID_HANDLE_VALUE) { MessageBox(NULL,"ファイルを作成できませんでした。","失敗",MB_OK); CloseHandle(fh); GlobalFree(lpBuf); return 0; } /* ファイルに作成した動画データを書き込み */ WriteFile(fh,lpBuf,256*256*240,&dwDummy,NULL); if (dwDummy==256*256*240) MessageBox(NULL,"動画ファイルを作成しました。","成功",MB_OK); else MessageBox(NULL,"動画ファイル作成は失敗しました。","失敗",MB_OK); CloseHandle(fh); GlobalFree(lpBuf); return 0; }