今天專案中有乙個問題,用dc在乙個24位的bitmap上寫字型,字型竟然模糊了,因為windows mobile的螢幕顏色深度是16位的。
以下是一位網友的**:
當壓縮格式為 bi_bitfields 時,在位圖資訊(即bitmapinfoheader)後面接著三個dword型資料,就是掩碼資料,
一般為:0xf800(蘭色掩碼),0x07e0(綠色掩碼),0x001f(紅色掩碼),這是565的格式
如果為:0x7c00, 0x03e0, 0x001f, 則是555的格式(這也是bitcount=16,而壓縮標誌為bi_dib時的預設格式)
bitmapinfo *bitmapinfo = (bitmapinfo*)malloc( sizeof(bitmapinfo)+sizeof(rgbquad)*(255) );
memset( bitmapinfo, 0, sizeof(bitmapinfo)+sizeof(rgbquad)*(255) );
bitmapinfo->bmiheader.bisize = sizeof(bitmapinfoheader);
bitmapinfo->bmiheader.biwidth = m_uwidth;
bitmapinfo->bmiheader.biheight = ulinecount*ulineheight + m_ulinespace*(ulinecount-1);
bitmapinfo->bmiheader.biplanes = 1;
bitmapinfo->bmiheader.bibitcount = 16;
bitmapinfo->bmiheader.bicompression = bi_bitfields;
bitmapinfo->bmiheader.bisizeimage = 0;
bitmapinfo->bmicolors[0].rgbblue = 0;
bitmapinfo->bmicolors[0].rgbgreen = 0xf8;
bitmapinfo->bmicolors[0].rgbred = 0;
bitmapinfo->bmicolors[0].rgbreserved = 0;
bitmapinfo->bmicolors[1].rgbblue = 0xe0;
bitmapinfo->bmicolors[1].rgbgreen = 0x07;
bitmapinfo->bmicolors[1].rgbred = 0;
bitmapinfo->bmicolors[1].rgbreserved = 0;
bitmapinfo->bmicolors[2].rgbblue = 0x1f;
bitmapinfo->bmicolors[2].rgbgreen = 0;
bitmapinfo->bmicolors[2].rgbred = 0;
bitmapinfo->bmicolors[2].rgbreserved = 0;
m_hbitmap = createdibsection( m_hcompatibledc, bitmapinfo, dib_rgb_colors, &pbitmapbuffer, null, null );
getobject( m_hbitmap, sizeof(dibsection), &dibsection );
把這個位圖選入dc,然後draw text,字型就清楚了。
Git 字型警告 解決辦法
最近在使用git,不得不說這是乙個非常不錯的工具,不論是對程式設計師還是其人 尤其是些公文 專案文件什麼的也是非常有用的 今天使用中不斷出現一段錯誤警告 warning your console font probably doesn t support unicode.if you experie...
CAD字型顯示問號的解決辦法
cad字型顯示問號的解決辦法 1 選中問號的文字,ctrl 1檢視下文字樣式,以standard為例。2 執行st命令,設定standard樣式的字型名為windows自帶的ttf字型,例如宋體或者仿宋,確認,這樣能解決90 以上的問題,而且方法很簡單。3 如果還有字型是問號,不但要設定小字型,還要...
Flex 使用中文裝置字型 解決辦法
flex 使用中文裝置字型 解決辦法。大家知道flex 對中文裝置字型的支援很差,僅僅對 華文楷體 華文細黑 華文仿宋 華文中宋 等 我機子上就測試了這麼多,但我機子上的字型還是比較全的 當然也不僅僅是 flex了,用flex ide 和 flash ide 用 寫的texifield,編譯出的fl...