VC BMP寫字方法(絕對好使)

2021-05-02 13:26:25 字數 1922 閱讀 9728

char bmppath="1.bmp";

file *fp=fopen(bmppath,"rb");

if(fp==0)

return ;

fseek(fp,sizeof(bitmapfileheader),0);

bitmapinfoheader head;

fread(&head,sizeof(bitmapinfoheader),1,fp);

int bmpheight=head.biheight;

int bmpwidth=head.biwidth;

int bibitcount=head.bibitcount;

int linebyte=(bmpwidth*bibitcount/8+3)/4*4;

rgbquad *pcolortable;

if(bibitcount==8)

unsigned char *pbmpbuf=new unsigned char[linebyte*bmpheight];

fread(pbmpbuf,1,linebyte*bmpheight,fp);

cdc       *m_pmemdc;

m_pmemdc = new cdc();

cdc *pdc=getdc();

m_pmemdc->createcompatibledc(pdc);

cbitmap   *m_poldbmp=null;

cbitmap   *m_pmembmp = new cbitmap();       //根據的大小建立乙個相容位圖

m_pmembmp->createcompatiblebitmap(pdc, bmpwidth,bmpheight );

m_poldbmp = m_pmemdc->selectobject(m_pmembmp);

//把影象的資料繪製到相容點陣圖上

setdibits(m_pmemdc->getsafehdc(), (hbitmap)m_pmembmp->m_hobject,

0, bmpheight, (lpvoid)pbmpbuf, (bitmapinfo*)&head, dib_rgb_colors);

m_pmemdc->setbkmode(transparent);

m_pmemdc->settextcolor(rgb(255, 0, 0));

m_pmemdc->textout(10,100,"adasd");

unsigned char *ptemp = new unsigned char[linebyte*bmpheight];

getdibits(m_pmemdc->getsafehdc(), (hbitmap)m_pmembmp->m_hobject, 0, bmpheight,

(lpvoid)ptemp, (bitmapinfo*)&head, dib_rgb_colors);

fclose(fp);

char bmpwrite="2.bmp";

fp=fopen(bmpwrite,"wb");

bitmapfileheader filehead;

filehead.bftype=0x4d42;

filehead.bfsize=sizeof(bitmapfileheader)+sizeof(bitmapinfoheader)+linebyte*bmpheight;

filehead.bfreserved1=0;

filehead.bfreserved2=0;

filehead.bfoffbits=54;

fwrite(&filehead,sizeof(bitmapfileheader),1,fp);

fwrite(&head,sizeof(bitmapinfoheader),1,fp);

fwrite(ptemp,linebyte*bmpheight,1,fp);

fclose(fp);

寫檔案時最好使用絕對路徑, 而不使用相對路徑

因為在程式中如果你使用如下方法寫檔案的話 std ofstream out cache.txt out test std endl out.close 一般情況下,它會寫到當前應用程式所在目錄,但是如果在程式的某個地方,調了setcurrentdirectory e 那麼當調到上面的 時就會將檔案寫...

sass安裝方法,絕對好用的方式

系統重做了,很多東西都重灌,sass也一樣,結果在安裝的過程中遇到了問題,這裡記錄下,也給同樣遇到問題的朋友們乙個思路。本方法是參照這裡解決的。安裝sass先安裝ruby,相信所有人都知道了,下面我就只介紹安裝完ruby之後的的,不過這裡還是要提醒下,安裝ruby的時候這裡記得打勾 安裝sass試過...

div絕對居中的六種方法

在平時,我們經常會碰到讓乙個div框針對某個模組上下左右都居中 水平垂直居中 其實針對這種情況,我們有多種方法實現。方法一 絕對定位方法 不確定當前div的寬度和高度,採用 transform translate 50 50 當前div的父級新增相對定位 position relative div方...