日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html给文字加黑色边框,如何给显示文字加一层黑色边框

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html给文字加黑色边框,如何给显示文字加一层黑色边框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在工作中遇到這樣一個問題,在實時監視的視頻顯示中需要在視頻中顯示當前時間,通道名等額外信息,無論信息內容在視頻畫面上采用何種顏色顯示,當信息顯示區域背景的視頻畫面的顏色正好與顯示信息內容的顏色一致或差不多相似時,這個時候,很難看清顯示的內容,盡管這種情況出現的概率并不大,但可能性仍然存在,解決這個問題最好的方法是在信息文字的外圍加上一層和文字顏色不一樣的外邊。下面我們以文字為白色,外圍加黑邊為例來分析這個問題。

以下分析基于在windows操作系統的PC機上實現。

如何在白色文字的外圍加裹一層黑邊,目前我知道的有兩種方式。

1.通過獲得windows顯示設備句柄,利用windows的textout()函數可以直接裹上黑邊。具體代碼如下:

bool drawText(CDC *pDC,

LPCTSTR lpszText,

const CRect& rctDraw,

UINT nFormat,

COLORREF clrText,

COLORREF clrBack)

{

ASSERT(pDC != NULL);

if (pDC->GetSafeHdc() == NULL) return false;

COLORREF oldColor = pDC->GetTextColor();

int????? oldBkMod = pDC->SetBkMode(TRANSPARENT);

CRect rect = rctDraw;

pDC->SetTextColor(clrBack);

rect.OffsetRect(-1, -1); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect( 1,? 0); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect( 1,? 0); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect( 0,? 1); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect( 0,? 1); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect(-1,? 0); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect(-1,? 0); pDC->DrawText(lpszText, rect, nFormat);

rect.OffsetRect( 0, -1); pDC->DrawText(lpszText, rect, nFormat);

pDC->SetTextColor(clrText);

rect.OffsetRect( 1,? 0); pDC->DrawText(lpszText, rect, nFormat);

pDC->SetBkMode(oldBkMod);

pDC->SetTextColor(oldColor);

return true;

}

2.通過已獲取的點陣字符庫,然后構建一個新的包含黑邊的字符庫結構,顯示時,對這個新的字符庫結構顯示。

以16*16的點陣字符庫為例,一個漢字需要16*16位即32個字節來表示,如下圖

在32個字節里存取的都是字模顯示的位信息,2個字節表示一行,按位從左到右顯示,0表示無色,1表示文字色,一共16行。

為了在字的外圍加一層黑邊,需要定義一個新的數據結構,用兩個位來保存點陣信息,00表示無色,11表示文字色,01表示邊框色,這樣考慮到為了在字的邊緣處也可能有黑邊,新的字符矩陣應為18*18,其中兩個位表示一個點陣信息,這樣每一行需要18*2位,為了方便存取,每一行用5個字節表示,從左到右按位填充信息,多余位補0。

具體算法思路:

將含單色信息的字符模數據展開到內存,然后第一次逐行掃描點,凡是掃到某點位文字色,那么在加黑邊后,新的數據結構中,其周圍8個點,只有兩種情況,一種是黑邊色點,一種是文字色點,暫時不去理會它是否文字色點,將其周圍8個點一律設為黑邊色點,其自身設為文字色點,這樣一次掃描完所有點后,顯然在新的數據結構中,有很多文字點被設為了黑邊色點,這樣需要再對單色信息的字符模數據再掃描一遍,如掃到點為文字色,將新的數據結構中對應的點調為文字色,這樣就將上一次掃描中本是文字色點卻設為黑邊色點的所有點信息全部調整過來了。

具體源碼如下:

void AddShadowToZM(BYTE *pZM,int nWidth,int nHeight,BYTE **ppShadowZM)

{

if(pZM == NULL)

{

return;

}

if(*ppShadowZM != NULL)

{

delete []*ppShadowZM;

}

//由于需要加上黑邊,考慮用兩個比特位來表示一位象素,00表示無象素顯示,01表示該象素為黑邊象素,11表示該象素為文字象素

//同時考慮到外圍需要加一層,在寬度上需要增加4個比特位,和位圖對應從左至右,最前兩個比特位對應位圖左上角原點

//在高度上增加兩行

*ppShadowZM = new BYTE[(nWidth*2+1)*(nHeight+2)];

memset(*ppShadowZM,0,(nWidth*2+1)*(nHeight+2));

int i,j,k;

//SHADOW

for(i = 0;i < nHeight;i++)

{

for(j = 0;j < nWidth;j++)

{

for(k = 0;k < 8;k++)

{

if((pZM[i*nWidth+j] >> (7-k))&0x01)

{

//TRACE("0");

//如果某一位為1,將其四周象素全部置為01,表示為加黑邊

for(int m = 0;m < 3;m++)

{

for(int n = 0;n < 3;n++)

{

(*ppShadowZM)[(i+m)*(nWidth*2+1)+(j*8+k+n)*2/8] |= 1<

//TRACE("2");

}

}

}

else

{

//TRACE(" ");

}

}

}

//TRACE("/n");

}

for(i = 0;i < nHeight;i++)

{

for(j = 0;j < nWidth;j++)

{

for(k = 0;k < 8;k++)

{

if((pZM[i*nWidth+j] >> (7-k))&0x01)

{

(*ppShadowZM)[(i+1)*(nWidth*2+1)+(j*8+k+1)*2/8] |= 3<

//TRACE("0");

}

else

{

//TRACE("*");

}

}

}

}

}

在獲取了新的點陣數據結構后,可以根據顯示的要求將其顯示在視頻畫面上。

上述的第二種方法,雖然比較麻煩,但在獲取了點陣字符模數據文件后,這種方法更具普遍性。關于點陣字符模數據的獲取將另行討論。

總結

以上是生活随笔為你收集整理的html给文字加黑色边框,如何给显示文字加一层黑色边框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人毛片软件 | aaa毛片视频 | 91黄色影视| 欧美熟妇精品久久久久久 | 朝鲜女人性猛交 | 1024福利 | 4438全国最大成人网 | 激情影音 | 自拍偷拍亚洲综合 | 一级黄色a视频 | а 天堂 在线| 成年人午夜 | 免费激情视频网站 | 97无码精品人妻 | av男人的天堂网 | 亚洲成人一级 | japanese24hdxxxx中文字幕 | 日韩国产在线 | 亚洲一区在线播放 | 在线免费观看亚洲 | 国产欧美一区二区三区在线看蜜臀 | 日韩欧美操| 波多野结衣中文字幕一区 | 三级黄色在线 | 国产精品久久二区 | 无码精品一区二区三区在线播放 | 窝窝在线视频 | 韩日av网站| 欧美日韩精品久久久免费观看 | 韩国黄色av | 免费污视频在线观看 | 欧美少妇xxx | 香蕉视频官网在线观看 | 九九视屏| 91亚洲视频 | 五月婷婷在线观看视频 | 日韩免费成人av | 天天干夜夜夜 | 国产r级在线观看 | 顶臀精品视频www | 欧美一区二区三区成人精品 | 天天综合网久久 | 在线观看二区 | 成年人视频网 | 久久久999久久久 | 久久久噜噜噜久久 | 国产一二在线观看 | 狠狠五月天 | 夜夜夜综合 | 性高跟鞋xxxxhd国产电影 | 最新三级网站 | 国产精品电影院 | 丰满人妻一区二区三区无码av | 成人欧美一区二区三区黑人免费 | 国产精品久久一区二区三区动 | 国产一区激情 | 成人一区二区视频 | 99在线视频免费观看 | 爆操巨乳 | 中文字幕在线观 | ts人妖在线 | 久久精品牌麻豆国产大山 | 国产片网址| 五月激情在线观看 | 美女隐私无遮挡免费 | 麻豆久久久午夜一区二区 | 欧美熟妇7777一区二区 | 久久色在线 | 精品欧美一区二区三区 | 欧美精品第1页 | 亚洲性精品 | 日本一区二区三区四区在线观看 | 国产精品111| 久久国产精品无码一级毛片 | 在线免费av片 | 诱惑の诱惑筱田优在线播放 | 在线观看欧美日韩视频 | 日韩男人的天堂 | 波多野结衣一区二区在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲成人精品网 | fc2ppv色の美マンに中出し | 国产亚洲精品成人无码精品网站 | 波多野结衣 一区 | 亚洲清色| 成人免费毛片视频 | 午夜精品久久久久久久第一页按摩 | 国产稀缺精品盗摄盗拍 | 黄色中文| 亚洲淫 | 小泽玛利亚一区二区三区视频 | 欧美视频中文字幕 | 国产精品亚洲二区在线观看 | 玖玖色资源 | 欧美激情视频在线播放 | 少妇激情偷人爽爽91嫩草 | 色综合久久网 | 97超碰人人看 | 狠狠躁日日躁夜夜躁av |