Thinking in Java
          Java開發技巧與實踐
          posts - 9,comments - 6,trackbacks - 0
          <2012年2月>
          2930311234
          567891011
          12131415161718
          19202122232425
          26272829123
          45678910

          常用鏈接

          留言簿(3)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          基本思路是向Display繪制圖片,然后通過操作Image上的像素點來生成點陣字庫。

          這里以SWT為例,代碼如下:
           1 GC gc = new GC(image);
           2 gc.setFont(font); // 設置字體,事先可以準備好一個字體實例
           3 gc.drawString(ch.toString(), 0, 0);
           4 
           5 
           6 for (int y = 0; y < size.y; y++) {
           7     for (int x = 0; x < size.x; x++) {
           8           int pixel = image.getImageData().getPixel(x, y);
           9           if (pixel != 0xffffff00) {
          10 
          11                // 這里對像素值的判斷依賴于gc的前景色和背景色設置,通過判斷則可以對字符上的每一個像素進行操作,生成點陣坐標序列(x, y)
          12           }
          13      }
          14 }
          15 
          16 gc.dispose();
          17 image.dispose();

          當然這里可以一次性獲得一個String的點陣矩陣,那么需要事先準備多大的image呢?

          在SWT中可以使用gc.stringExtent(String...)來獲取,代碼如下:
          1 GC gc = new GC(Display.getDefault()); 
          2 gc.setFont(font);
          3 Point size = gc.stringExtent(ch.toString()); // 獲得了gc實際繪制區域的大小
          4 gc.dispose();


          無人分享的快樂不是真快樂,沒人分擔的痛苦是真痛苦。
          posted on 2012-02-16 19:52 Feenn 閱讀(2761) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙江县| 汝阳县| 海口市| 宣威市| 本溪| 萨嘎县| 鸡西市| 亚东县| 大兴区| 崇州市| 左权县| 余干县| 鹰潭市| 潜江市| 夏邑县| 蚌埠市| 沅江市| 东源县| 商洛市| 兴海县| 临潭县| 崇州市| 兴义市| 沁阳市| 应用必备| 呼图壁县| 宁远县| 镇坪县| 永泰县| 甘德县| 锡林浩特市| 绥芬河市| 西乌珠穆沁旗| 若尔盖县| 天长市| 铜梁县| 阜新| 崇明县| 泰宁县| 灵璧县| 天长市|