ببین من ویژوال بیسیک کار می کنمنقل قول:
و به خاطر اینکه ویژوال محدودیت های زیادی داره شروع کردم به یادگیری سی و سی پلاس پلاس به خاطر همین اونقدرا حرفه ای نشدم تا اینا که گفتیو بفهمم
میشه یه نمونه بزاری؟
Printable View
ببین من ویژوال بیسیک کار می کنمنقل قول:
و به خاطر اینکه ویژوال محدودیت های زیادی داره شروع کردم به یادگیری سی و سی پلاس پلاس به خاطر همین اونقدرا حرفه ای نشدم تا اینا که گفتیو بفهمم
میشه یه نمونه بزاری؟
دوباره سلام.
یه نمونه کد براتون گذاشتم. همنطور که میبینید تمام مراحلی که در موردشون صحبت کردیم
توش به کار رفته. این کد یه 24bits Bitmap ایجاد میکنه. بدون compression
اگه مشکلی پیش اومد اطلاع بدید.
کد:void SaveBMP(char *fileName,BYTE * buf,UINT width,UINT height)
{
short res1=0;
short res2=0;
long pixoff=54;
long compression=0;
long cmpsize=0;
long colors=0;
long impcol=0;
char m1='B';
char m2='M';
DWORD widthDW = WIDTHBYTES(width * 24);
long bmfsize=sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) +
widthDW * height;
long byteswritten=0;
BITMAPINFOHEADER header;
header.biSize=40;
header.biWidth=width;
header.biHeight=height;
header.biPlanes=1;
header.biBitCount=24;
header.biCompression=BI_RGB;
header.biSizeImage=0;
header.biXPelsPerMeter=0;
header.biYPelsPerMeter=0;
header.biClrUsed=0;
header.biClrImportant=0;
FILE *fp;
fp=fopen(fileName,"wb");
if (fp==NULL)
{
m_errorText="Can't open file for writing";
return;
}
fwrite((BYTE *)&(m1),1,1,fp); byteswritten+=1;
fwrite((BYTE *)&(m2),1,1,fp); byteswritten+=1;
fwrite((long *)&(bmfsize),4,1,fp); byteswritten+=4;
fwrite((int *)&(res1),2,1,fp); byteswritten+=2;
fwrite((int *)&(res2),2,1,fp); byteswritten+=2;
fwrite((long *)&(pixoff),4,1,fp); byteswritten+=4;
fwrite((BITMAPINFOHEADER *)&header,sizeof(BITMAPINFOHEADER),1,fp);
byteswritten+=sizeof(BITMAPINFOHEADER);
long row=0;
long rowidx;
long row_size;
row_size=header.biWidth*3;
long rc;
for (row=0;row<header.biHeight;row++)
{
rowidx=(long unsigned)row*row_size;
rc=fwrite((void *)(buf+rowidx),row_size,1,fp);
byteswritten+=row_size;
for (DWORD count=row_size;count<widthDW;count++)
{
char dummy=0;
fwrite(&dummy,1,1,fp);
byteswritten++;
}
}
fclose(fp);
}
سلامنقل قول:
من اصلا نمی دونم این کدکها چطوری کار می کنن فقط نصبش می کنم و استفاده می کنم
حالا خیلی مشتاقم که در موردش و برنامه نویسیش بیشتر بدونم
اگه یه مقاله یا کتاب کامل که از پایه نحوه نوشتن برنامش و توضیح بده( انگلیسی یا فارسی) ممنون می شم
زبانم هم c++ هستش
ممنون