音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

點陣字庫

出處:computer00 發(fā)布于:2011-08-16 14:06:17

  點陣字庫的生產原理

  所有的漢字或者英文都是下面的原理,由左至右,每8個點占用一個字節(jié),不足8個字節(jié)的占用一個字節(jié),而且從位向位排列。

  生成的字庫說明:(以12×12例子)

  一個漢字占用字節(jié)數:12÷8=1····4也就是占用了2×12=24個字節(jié)。

  編碼排序A0A0→A0FE A1A0→A2FE依次排列。

  以12×12字庫的“我”為例:“我”的編碼為CED2,所以在漢字排在CEH-AOH=2EH區(qū)的D2H-A0H=32H個。所以在12×12字庫的起始位置就是[{FE-A0}*2EH+32H]*24=104976開始的24個字節(jié)就是我的點陣模。

  其他的類推即可。

  英文點陣也是如此推理。

  在DOS程序中使用點陣字庫的方法

  首先需要理解的是點陣字庫是一個數據文件,在這個數據文件里面保存了所有文字的點陣數據。至于什么是點陣,我想我不講大家都知道 的,使用過"文曲星"之類的電子辭典吧,那個的液晶顯示器上面顯示的漢子就能夠明顯的看出"點陣"的痕跡。在 PC 機上也是如此,文字也是由點陣來組成了,不同的是,PC機顯示器的顯示分辨率更高,高到了我們肉眼無法區(qū)分的地步,因此"點陣"的痕跡也就不那么明顯了。

  點陣、矩陣、位圖這三個概念在本質上是有聯系的,從某種程度上來講,這三個就是同義詞。點陣從本質上講就是單色位圖,他使用一個比特來表示一個點,如果這 個比特為0,表示某個位置沒有點,如果為1表示某個位置有點。矩陣和位圖有著密不可分的聯系,矩陣其實是位圖的數學抽象,是一個二維的陣列。位圖就是這種 二維的陣列,這個陣列中的 (x,y) 位置上的數據代表的就是對原始圖形進行采樣量化后的顏色值。但是,另一方面,我們要面對的問題是,計算機中數據的存放都是一維的,線性的。因此,我們需要 將二維的數據線性化到一維里面去。通常的做法就是將二維數據按行順序的存放,這樣就線性化到了一維。

  那么點陣字的數據存放細節(jié)到底是怎么樣的呢。其實也十分的簡單,舉個例子能說明問題。比如說 16*16 的點陣,也就是說每一行有16個點,由于一個點使用一個比特來表示,如果這個比特的值為1,則表示這個位置有點,如果這個比特的值為0,則表示這個位置沒 有點,那么一行也就需要16個比特,而8個比特就是一個字節(jié),也就是說,這個點陣中,一行的數據需要兩個字節(jié)來存放。行的前八個點的數據存放在點陣數 據的個字節(jié)里面,行的后面八個點的數據存放在點陣數據的第二個字節(jié)里面,第二行的前八個點的數據存放在點陣數據的第三個字節(jié)里面,…,然后后 面的就以此類推了。這樣我們可以計算出存放一個點陣總共需要32個字節(jié)??纯聪旅孢@個圖形化的例子:

  | |1| | | | | | | | | | |1| | | |

  | | |1|1| |1|1|1|1|1|1|1|1|1| | |

  | | | |1| | | | | | | | |1| | | |

  |1| | | | | |1| | | | | |1| | | |

  | |1|1| | | |1| | | | | |1| | | |

  | | |1| | | |1| | | | |1| | | | |

  | | | | |1| | |1| | | |1| | | | |

  | | | |1| | | |1| | |1| | | | | |

  | | |1| | | | | |1| |1| | | | | |

  |1|1|1| | | | | | |1| | | | | | |

  | | |1| | | | | |1| |1| | | | | |

  | | |1| | | | |1| | | |1| | | | |

  | | |1| | | |1| | | | | |1| | | |

  | | |1| | |1| | | | | | |1|1|1| |

  | | | | |1| | | | | | | | |1| | |

  | | | | | | | | | | | | | | | | |

  可以看出這是一個"漢"字的點陣,當然文本的方式效果不是很好。根據上面的原則,我們可以寫出這個點陣的點陣數 據:0x40,0x08,0x37,0xfc,0x10,0x08,…, 當然寫這個確實很麻煩所以我不再繼續(xù)下去。我這樣做,也只是為了向你說明,在點陣字庫中,每一個點陣的數據就是按照這種方式存放的。

  當然也存在著不規(guī)則的點陣,這里說的不規(guī)則,指的是點陣的寬度不是8的倍數,比如 12*12 的點陣,那么這樣的點陣數據又是如何存放的呢?其實也很簡單,每一行的前面8個點存放在一個字節(jié)里面,每一行的剩下的4點就使用一個字節(jié)來存放,也就是說 剩下的4個點將占用一個字節(jié)的高4位,而這個字節(jié)的低4位沒有使用,全部都默認的為零。這樣做當然顯得有點浪費,不過卻能夠便于我們進行存放和尋址。對于 其他不規(guī)則的點陣,也是按照這個原則進行處理的。這樣我們可以得出一個 m*n 的點陣所占用的字節(jié)數為 (m+7)/8*n.

  在明白了以上所講的以后,我們可以寫出一個顯示一個任意大小的點陣字模的函數,這個函數的功能是輸出一個寬度為w,高度為h的字模到屏幕的 (x,y) 坐標出,文字的顏色為 color,文字的點陣數據為 pdata 所指:

  /*輸出字模的函數*/

  void _draw_model(char *pdata, int w, int h, int x, int y, int color)

  {

  int     i;    /* 控制行 */

  int     j;    /* 控制一行中的8個點 */

  int     k;    /* 一行中的第幾個"8個點"了 */

  int     nc;   /* 到點陣數據的第幾個字節(jié)了 */

  int     cols; /* 控制列 */

  BYTE    static mask[8]={128, 64, 32, 16, 8, 4, 2, 1}; /* 位屏蔽字 */

  w = (w + 7) / 8 * 8; /* 重新計算w */

  nc = 0;

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

  {

  cols = 0;

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

  {

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

  {

  if (pdata[nc]&mask[j])

  putpixel(x+cols, y+i, color);

  cols++;

  }

  nc++;

  }

  }

  }

  代碼很簡單,不用怎么講解就能看懂,代碼可能不是化的,但是應該是易讀懂的。其中的 putpixel 函數,使用的是TC提供的 Graphics 中的畫點函數。使用這個函數就可以完成點陣任意大小的點陣字模的輸出。

  接下來的問題就是如何在漢子庫中尋址某個漢子的點陣數據了。要解決這個問題,首先需要了解漢字在計算機中是如何表示的。在計算機中英文可以使用 ASCII 碼來表示,而漢字使用的是擴展 ASCII 碼,并且使用兩個擴展 ASCII 碼來表示一個漢字。一個 ASCII 碼使用一個字節(jié)表示,所謂擴展 ASCII 碼,也就是 ASCII 碼的位是1的 ASCII 碼,簡單的說就是碼值大于等于 128 的 ASCII 碼。一個漢字由兩個擴展 ASCII 碼組成,個擴展 ASCII 碼用來存放區(qū)碼,第二個擴展 ASCII 碼用來存放位碼。在 GB2312-80 標準中,將所有的漢字分為94個區(qū),每個區(qū)有94個位可以存放94個漢字,形成了人們常說的區(qū)位碼,這樣總共就有 94*94=8836 個漢字。在點陣字庫中,漢字點陣數據就是按照這個區(qū)位的順序來存放的,也就是存放的是個區(qū)的漢字點陣數據,在每一個區(qū)中有是按照位的順序來存放 的。在漢字的內碼中,漢字區(qū)位碼的存放實在擴展 ASCII 基礎上存放的,并且將區(qū)碼和位碼都加上了32,然后存放在兩個擴展 ASCII 碼中。具體的說就是:

  個擴展ASCII碼 = 128+32 + 漢字區(qū)碼

  第二個擴展ASCII嗎 = 128+32 + 漢字位碼

  如果用char hz[2]來表示一個漢字,那么我可以計算出這個漢字的區(qū)位碼為:

  區(qū)碼 = hz[0] - 128 - 32 = hz[0] - 160

  位碼 = hz[1] - 128 - 32 = hz[1] - 160.

  這樣,我們可以根據區(qū)位碼在文件中進行殉職了,尋址公式如下:

  漢字點陣數據在字庫文件中的偏移 = ((區(qū)碼-1) * 94 + 位碼) * 一個點陣字模占用的字節(jié)數

  在尋址以后,即可讀取漢字的點陣數據到緩沖區(qū)進行顯示了。以下是實現代碼:

  /* 輸出一個漢字的函數 */

  void _draw_hz(char hz[2], FILE *fp, int x, int y, int w, int h, int color)

  {

  char fontbuf[128];   /* 足夠大的緩沖區(qū),也可以動態(tài)分配 */

  int ch0 = (BYTE)hz[0]-0xA0; /* 區(qū)碼 */

  int ch1 = (BYTE)hz[1]-0xA0; /* 位碼 */

  /* 計算偏移 */

  long offset = (long)pf->_hz_buf_size * ((ch0 - 1) * 94 + ch1 - 1);

  fseek(fp, offset, SEEK_SET);              /* 進行尋址 */

  fread(fontbuf, 1, (w + 7) / 8 * h, fp);   /* 讀入點陣數據 */

  _draw_model(fontbuf, w, h, x, y, color); /* 繪制字模 */

  }

  以上介紹完了中文點陣字庫的原理,當然還有英文點陣字庫了。英文點陣字庫中單個點陣字模數據的存放方式與中文是一模一樣的,也就是對我們所寫的 _draw_model 函數同樣可以使用到英文字庫中。不同的是對點陣字庫的尋址上。英文使用的就是 ASCII 碼,其碼值是0到127,尋址公式為:

  英文點陣數據在英文點陣字庫中的偏移 = 英文的ASCII碼 * 一個英文字模占用的字節(jié)數

  可以看到,區(qū)分中英文的關鍵就是,一個字符是 ASCII 碼還是擴展 ASCII 碼,如果是 ASCII 碼,其范圍是0到127,這樣是使用的英文字庫,如果是擴展 ASCII 碼,則與其后的另一個擴展 ASCII 碼組成漢字內碼,使用中文字庫進行顯示。只要正確區(qū)分 ASCII 碼的類型并進行分別的處理,也就能實現中英文字符串的混合輸出了。

  點陣字庫和矢量字庫的差別

  我們都只知道,各種字符在電腦屏幕上都是以一些點來表示的,因此也叫點陣。早的字庫就是直接把這些點存儲起來,就是點陣字庫。常見的漢字點陣字庫有 16x16, 24x24 等。點陣字庫也有很多種,主要區(qū)別在于其中存儲編碼的方式不同。點陣字庫的缺點就是它是固定分辨率的,也就是每種字庫都有固定的大小尺寸,在原始尺寸下使用,效果很好,但如果將其放大或縮小使用,效果就很糟糕了,就會出現我們通常說的鋸齒現象。因為需要的字體大小組合有無數種,我們也不可能為每種大小都定義一個點陣字庫。于是就出現了矢量字庫。

  矢量字庫

  矢量字庫是把每個字符的筆劃分解成各種直線和曲線,然后記下這些直線和曲線的參數,在顯示的時候,再根據具體的尺寸大小,畫出這些線條,就還原了原來的字符。它的好處就是可以隨意放大縮小而不失真。而且所需存儲量和字符大小無關。矢量字庫有很多種,區(qū)別在于他們采用的不同數學模型來描述組成字符的線條。常見的矢量字庫有 Type1字庫和Truetype字庫。

  在點陣字庫中,每個字符由一個位圖表示,并把它用一個稱為字符掩膜的矩陣來表示,其中的每個元素都是一位二進制數,如果該位為1表示字符的筆畫經過此位,該像素置為字符顏色;如果該位為0,表示字符的筆畫不經過此位,該像素置為背景顏色。點陣字符的顯示分為兩步:首先從字庫中將它的位圖檢索出來,然后將檢索到的位圖寫到幀緩沖器中。

  在實際應用中,同一個字符有多種字體(如宋體、楷體等),每種字體又有多種大小型號,因此字庫的存儲空間十分龐大。為了減少存儲空間,一般采用壓縮技術。

  矢量字符記錄字符的筆畫信息而不是整個位圖,具有存儲空間小,美觀、變換方便等優(yōu)點。例如:在AutoCAD中使用圖形實體-形(Shape)-來定義矢量字符,其中,采用了直線和圓弧作為基本的筆畫來對矢量字符進行描述。 對于字符的旋轉、放大、縮小等幾何變換,點陣字符需要對其位圖中的每個象素進行變換,而矢量字符則只需要對其幾何圖素進行變換就可以了,例如:對直線筆畫的兩個端點進行變換,對圓弧的起點、終點、半徑和圓心進行變換等等。

  矢量字符的顯示也分為兩步。首先從字庫中將它的字符信息。然后取出端點坐標,對其進行適當的幾何變換,再根據各端點的標志顯示出字符。

  輪廓字形法是當今國際上的一種字符表示方法,其壓縮比大,且能保證字符質量。輪廓字形法采用直線、B樣條/Bezier曲線的集合來描述一個字符的輪廓線。輪廓線構成一個或若干個封閉的平面區(qū)域。輪廓線定義加上一些指示橫寬、豎寬、基點、基線等等控制信息就構成了字符的壓縮數據。

  如何使用Windows的系統(tǒng)字庫生成點陣字庫?

  我的程序現在只能預覽一個漢字的不同字體的點陣表達。

  界面很簡單: 一個輸出點陣大小的選擇列表(8x8,16x16,24x24等),一個系統(tǒng)中已有的字體名稱列表,一個預覽按鈕,一塊畫圖顯示區(qū)域。

  得到字體列表的方法:(作者稱這一段是用來取回系統(tǒng)的字體,然后添加到下拉框中)

  //取字體名稱列表的回調函數,使用前要聲明一下該方法

  int CALLBACK MyEnumFontProc(ENUMLOGFONTEX* lpelf,NEWTEXTMETRICEX* lpntm,DWORD nFontType,long lParam)

  {

  CFontPeekerDlg* pWnd=(CFontPeekerDlg*) lParam;

  if(pWnd)

  {

  if( pWnd->m_combo_sfont.FindString(0, lpelf->elfLogFont.lfFaceName) <0 )

  pWnd->m_combo_sfont.AddString(lpelf->elfLogFont.lfFaceName);

  return 1;

  }

  return 0;

  }

  //說明:CFontPeekerDlg 是我的dialog的類名, m_combo_sfont是列表名稱下拉combobox關聯的control變量

  //調用的地方 (******問題1:下面那個&lf怎么得到呢……)

  {

  ::EnumFontFamiliesEx((HDC) dc,&lf, (FONTENUMPROC)MyEnumFontProc,(LPARAM) this,0);

  m_combo_sfont.SetCurSel(0);

  }

  字體預覽:

  如果點陣大小選擇16,顯示的時候就畫出16x16個方格。自定義一個類CMyStatic繼承自CStatic,用來畫圖。在CMyStatic的OnPaint()函數中計算并顯示。

  取得字體:

  常用的方法:用CreateFont創(chuàng)建字體,把字TextOut再用GetPixel()取點存入數組。 缺點:必須把字TextOut出來,能在屏幕上看見,不爽。

  我的方法,用這個函數:GetGlyphOutline(),可以得到一個字的輪廓矢量或者位圖??梢圆挥胻extout到屏幕,直接取得字模信息

  函數原型如下:

  DWORD GetGlyphOutline(

  HDC hdc, //畫圖設備句柄

  UINT uChar, //將要讀取的字符/漢字

  UINT uFormat, //返回數據的格式(字的外形輪廓還是字的位圖)

  LPGLYPHMETRICS lpgm, // GLYPHMETRICS結構地址,輸出參數

  DWORD cbBuffer, //輸出數據緩沖區(qū)的大小

  LPVOID lpvBuffer, //輸出數據緩沖區(qū)的地址

  CONST MAT2 *lpmat2 //轉置矩陣的地址

 ?。?;

  說明:

  uChar字符需要判斷是否是漢字還是英文字符。中文占2個字節(jié)長度。

  lpgm是輸出函數,調用GetGlyphOutline()是無須給lpgm 賦值。

  lpmat2如果不需要轉置,將 eM11.value=1; eM22.value=1; 即可。

  cbBuffer緩沖區(qū)的大小,可以先通過調用GetGlyphOutline(……lpgm, 0, NULL, mat); 來取得,然后動態(tài)分配lpvBuffer,再調用GetGlyphOutline,將信息存到lpvBuffer. 使用完畢后再釋放lpvBuffer.

  程序示例:(***問題2:用這段程序,我獲取的字符點陣總都是一樣的,不管什么字……)

  ……前面部分省略……

  GLYPHMETRICS glyph;

  MAT2 m2;

  memset(&m2, 0, sizeof(MAT2));

  m2.eM11.value = 1;

  m2.eM22.value = 1;

  //取得buffer的大小

  DWORD cbBuf = dc.GetGlyphOutline( nChar, GGO_BITMAP, &glyph, 0L, NULL, &m2);

  BYTE* pBuf=NULL;

  //返回GDI_ERROR表示失敗。

  if( cbBuf != GDI_ERROR )

  {

  pBuf = new BYTE[cbBuf];

  //輸出位圖GGO_BITMAP 的信息。輸出信息4字節(jié)(DWORD)對齊

  dc.GetGlyphOutline( nChar, GGO_BITMAP, &glyph, cbBuf, pBuf, &m2);

  }

  else

  {

  if(m_pFont!=NULL)

  delete m_pFont;

  return;

  }

  編程中遇到問題:

  一開始,GetGlyphOutline總是返回-1,getLastError顯示是"無法完成的功能",后來發(fā)現是因為調用之前沒有給hdc設置Font.

  后來能取得pBuf信息后,又開始郁悶,因為不太明白bitmap的結果是按什么排列的。后來跟蹤漢字"一"來調試(這個字簡單),注意到了glyph.gmBlackBoxX 其實就是輸出位圖的寬度,glyph.gmBlackBoxY就是高度。如果gmBlackBoxX=15,glyph.gmBlackBoxY=2,表示輸出的pBuf中有這些信息:位圖有2行信息,每一行使用15 bit來存儲信息。

  例如:我讀取"一":glyph.gmBlackBoxX = 0x0e,glyph.gmBlackBoxY=0x2; pBuf長度cbBuf=8 字節(jié)

  pBuf信息: 00 08 00 00 ff fc 00 00

  字符寬度 0x0e=14 則 行信息為: 0000 0000 0000 100 (只取到前14位)

  第二行根據4字節(jié)對齊的規(guī)則,從0xff開始 1111 1111 1111 110

  看出"一"字了嗎?呵呵

  直到他的存儲之后就可以動手解析輸出的信息了。

  我定義了一個宏#define BIT(n) (1《(n)) 用來比較每一個位信息時使用

  后來又遇到了一個問題,就是小頭和大頭的問題了。在我的機器上是little endian的形式,如果我用

  unsigned long *lptr = (unsigned long*)pBuf;

  //j from 0 to 15

  if( *lptr & BIT(j) )

  {

  //這時候如果想用j來表示寫1的位數,就錯了

  }

  因為從字節(jié)數組中轉化成unsigned long型的時候,數值已經經過轉化了,像上例中,實際上是0x0800 在同BIT(j)比較。

  不多說了,比較之前轉化一下就可以了if( htonl(*lptr) & BIT(j) )

  Unicode中文點陣字庫的生成與使用

  點陣字庫包含兩部分信息。首先是點陣字庫文件頭信息,它包含點陣字庫文字的字號、多少位表示一個像素,英文字母與符號的size、起始和結束unicode編碼、在文件中的起始偏移,漢字的size、起始和結束unicode編碼、在文件中的起始偏移。然后是真實的點陣數據,即一段段二進制串,每一串表示一個字母、符號或漢字的點陣信息。

  要生成點陣字庫必須有文字圖形的來源,我的方法是使用ttf字體。ttf字體的顯示采用的是SDL_ttf庫,這是開源圖形庫SDL的一個擴展庫,它使用的是libfreetype以讀取和繪制ttf字體。

  它提供了一個函數,通過傳入一個Unicode編碼便能輸出相應的文字的帶有alpha通道的位圖。那么我們可以掃描這個位圖以得到相應文字的點陣信息。由于帶有alpha通道,我們可以在點陣信息中也加入權值,使得點陣字庫也有反走樣效果。我采用兩位來表示一個點,這樣會有三級灰度(還有一個表示透明)。

  點陣字庫的顯示首先需要將文件頭信息讀取出來,然后根據unicode編碼判斷在哪個區(qū)間內,然后用unicode編碼減去此區(qū)間的起始unicode編碼,算出相對偏移,并加上此區(qū)間的文件起始偏移得到文件的偏移,然后讀出相應位數的數據,通過掃描這段二進制串,在屏幕的相應位置輸出點陣字型。

  顯示點陣字體需要頻繁讀取文件,因此做一個固定大小的緩存,采用LRU置換算法維護此緩存,以減少磁盤讀取。

  標準點陣字庫芯片

  標準點陣字庫芯片的特點:

  1.內涵全國信標委授權的標準點陣字型數據、

  2.支持國標字符集GB2312(6,763漢字),GB18030(27,484漢字)。

  3.支持多種點陣字型,包括11×12點,15×16點,24×24點,32×32點。

  4.免除了字庫燒錄和測試工序,并節(jié)省了2%以上的燒錄損耗。

  5.價格相當于空白FLASH價格

  標準點陣字庫芯片的種類和應用

  標準點陣漢字字庫芯片

  1 概述

  GT23L24M1W是一款內含24X24點陣的漢字庫芯片,支持GB18030國標漢字(含有國家信標委合法授權)及ASCII字符,排列格式為橫置橫排,用戶通過字符內碼,利用本手冊提供的方法計算出該字符點陣在芯片中的地址,可從該地址連續(xù)讀出字符點陣信息。

  1.1 芯片特點

  ● 數據總線

  SPI 串行總線接口

  PLII 精簡地址并行總線接口

  ● 點陣排列方式:字節(jié)橫置橫排

  ● 訪問速度:

  SPI 時鐘頻率:20MHz(max.)

  PLII 訪問速度:130ns(max.)@3.3V

  ● 工作電壓:2.7V~3.6V

  ● 電流:

  工作電流:12mA

  待機電流:10uA

  ● 封裝:SO20W

  ● 尺寸(SO20W):12.80mmX10.30mm

  ● 工作溫度:-20℃~85℃(SPI 模式下);-10℃~85℃(PLII 模式下)

  1.2 字庫內容

  字型樣張

  2 引腳描述與接口連接

  2.1 引腳名稱

  2.2 SPI 接口引腳描述

  串行數據輸出(SO):該信號用來把數據從芯片串行輸出,數據在時鐘的下降沿移出。

  串行數據輸入(SI):該信號用來把數據從串行輸入芯片,數據在時鐘的上升沿移入。

  串行時鐘輸入(SCLK):數據在時鐘上升沿移入,在下降沿移出。

  片選輸入(CS#):所有串行數據傳輸開始于CE#下降沿,CE#在傳輸期間必須保持為低電平,在兩條

  指令之間保持為高電平。

  總線掛起輸入(HOLD#):

  2.3 SPI 接口與主機接口電路示意圖

  SPI 與主機接口電路連接可以參考下圖(#HOLD管腳建議接 2K 電阻 3.3V 拉高)。

  若是采用系統(tǒng)電壓為 5V的,則需要進行電平轉換匹配連接 GT23 芯片,可以參考下圖(#HOLD 管腳建議接 2K 電阻 3.3V 拉高)。

  2.4 PLII 接口引腳描述

  2.5 PLII 接口與主機接口電路示意圖

  SPI/PLII_SEL(管腳內部有 100K 上拉電阻)接地,字庫芯片選擇 PLII 接口模式,與主機接口電路連接可以參考下圖。

  2.6 PLII 總線接口尋址說明

  在 PLII 總線模式下,芯片內部有 3個地址寄存器,主機需要把要讀取數據的地址寫入這 3個地址寄存器,然后再從數據寄存器中讀出數據。主機每讀數據寄存器,芯片內部的地址寄存器會自動增一,從而使主機只寫首地址,就可以連續(xù)讀取數據。

  3 字庫調用方法

  3.1 漢字點陣排列格式

  每個漢字在芯片中是以漢字點陣字模的形式存儲的,每個點用一個二進制位表示,存 1的點,當顯示

  時可以在屏幕上顯示亮點,存 0的點,則在屏幕上不顯示。點陣排列格式為橫置橫排:即一個字節(jié)的高位

  表示左面的點,低位表示右面的點(如果用戶按 word mode讀取點陣數據,請注意高低字節(jié)的順序),排

  滿一行的點后再排下一行。這樣把點陣信息用來直接在顯示器上按上述規(guī)則顯示,則將出現對應的漢字。

  3.1.1 24X24點漢字排列格式

  24X24 點漢字的信息需要 72個字節(jié)(BYTE 0 – BYTE 71)來表示。該 24X24 點漢字的點陣數據是橫置橫排的,其具體排列結構如下圖:

  命名規(guī)則:

  字符集及字數

  S:GB2312 6,763漢字

  M:GB18030 27,484漢字

  T:GB12345 6,866漢字

  BIG5 5,401 / 13,060漢字

  U:Unicode V3.0 27,484漢字

關鍵詞:點陣字庫

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://m.58mhw.cn,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯系人:

聯系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!