`
simen_net
  • 浏览: 307140 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA 取字模测试类

 
阅读更多

      最近有个需求要取汉字的字模,但是大部分都是C++\Delphi的实现,参考其他范例也实现了一个Delphi取模的方法,但感觉不是非常方便,尤其是在文字的缩放,变形的方面。JAVA里面图片处理的类貌似非常方便,于是也想对照写了一个测试类,非常好用。

      基本思路:根据汉字字体等参数将汉字绘到64X64的图层上,然后分将该图层分成很想16X16的图片。然后对每个图片上的每个像素点取值相加,如果大于阀值则标记该点。这样循环取出16X16的点阵。具体实现的时候可以根据实际需要将图层分辨率、取模比例等进行调整,并且也可以使用JAVA的图像处理方法对汉字进行缩放等。本类中只实现了对汉字的横向、纵向缩放。下面是实现类:

 

package com.strong;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class JavaZiMo {

  private static int intKuan = 64;
  private static int intGao = 64;
  private static int intSuoFangKuan = 1; // 横向缩放比例如 1.01 0.9
  private static int intSuoFangGao = 1; // 纵向缩放比例如 1.01 0.9
  private static int intFaZhi = -16; // 显示阀值
  private static String strShuRu = "胡"; // 待取字模
  private static String strZiTi = "文泉驿正黑"; // 待取字体

  public JavaZiMo() {
  }

  public static void main(String[] args) {
    BufferedImage image = new BufferedImage(intKuan, intGao, BufferedImage.TYPE_INT_BGR);
    Graphics2D g = image.createGraphics();
    Font myFont = new Font(strZiTi, Font.BOLD, 64); // 定义字体样式
    g.setFont(myFont); // 设置字体
    g.fillRect(0, 0, intKuan, intGao); // 绘制背景
    g.setColor(new Color(0, 0, 0)); // 设置字体颜色
    g.scale(intSuoFangKuan, intSuoFangGao); // 设置缩放
    g.drawString(strShuRu, 0, 54);
    g.dispose();
    // 生成图片文件
    // File f1 = new File("/tmp/11.jpg");
    // try {
    // ImageIO.write(image, "JPG", f1);
    // } catch (IOException e) {
    // // TODO Auto-generated catch block
    // e.printStackTrace();
    // }
    BufferedImage bi[] = new BufferedImage[16 * 16];
    int intDianZhen[] = new int[16 * 16];
    for (int i = 0; i < 16; i++) {
      for (int j = 0; j < 16; j++) {
        bi[i * 16 + j] = image.getSubimage(i * 4, j * 4, 4, 4);
      }
    }
    for (int i = 0; i < bi.length; i++) {
      int intD = 0;
      for (int j = 0; j < 4; j++) {
        for (int k = 0; k < 4; k++) {
          intD += bi[i].getRGB(j, k);
        }
      }
      intDianZhen[i] = intD;
    }
    // intDianZhen是实际的像素值数组,为了方便使用下面再用一个循环取字模,实际可以和上面合并
    for (int i = 0; i < 16; i++) {
      StringBuffer sb = new StringBuffer();
      for (int j = 0; j < 16; j++) {
        if (intDianZhen[i + j * 16] < intFaZhi) {
          sb.append("■");
        } else {
          sb.append("-");
        }
      }
      System.out.println(sb.toString());
    }
  }
}

 运行后在控制台输出如下:

----■■----------
----■■---■■■■■■■
----■■---■■■■■■■
■■■■■■■■■■■--■■■
■---■■--■■■--■■■
----■■---■■■■■■■
----■■---■■--■■■
--■■■■■■-■■--■■■
--■■--■■-■■■■■■■
--■■--■■-■■■■■■■
--■■--■■-■■--■■■
--■■■■■■■■■--■■■
--■■--■■■■■--■■■
--■■--■■■■---■■■
-----■■■■--■■■■■
------■■----■■--
 

 

 

分享到:
评论

相关推荐

    JAVA汉字字库及字模提取程序实现

    JAVA 汉字字库及字模提取程序实现 本篇文章旨在介绍JAVA语言实现汉字字库及字模提取程序的设计和实现。该程序的主要功能是从汉字字库中提取汉字的字模数据, 并将其显示在LED显示屏上。下面将详细介绍该程序的实现...

    8X8点阵取字模软件

    8X8点阵取字模软件是专为单片机显示设计的一款实用工具,它极大地简化了在单片机系统中处理字符显示的过程。在单片机编程中,尤其是在涉及低资源设备时,通常需要使用点阵字模来实现文本显示。8X8点阵指的是每个字符...

    5110LCD取字模软件

    《5110LCD取字模软件:深入解析与应用》 5110LCD,全称为 Nokia 5110/PCD8544 显示模块,是一款广泛应用于电子制作、物联网设备以及嵌入式系统中的黑白点阵液晶显示器。在开发涉及这种显示器的应用时,通常需要对...

    lcd取字模软件非常好用的软件啊

    LCD取字模软件作为电子工程领域中的一项重要工具,为开发与LCD显示相关的项目提供了极大的便利。在日常生活中,LCD显示屏扮演着重要的角色,它广泛用于手机、计算器、家用电器以及各种电子设备的显示界面,向用户...

    彩色图片取字模软件

    在IT领域,彩色图片取字模软件是一种非常实用的工具,尤其对于图形设计、排版、编程以及OCR(光学字符识别)应用来说至关重要。本文将详细介绍这类软件的功能、工作原理及其实用价值。 首先,我们要理解什么是...

    点阵屏-取字模软件

    在开发点阵屏显示程序时,一个重要的环节就是“取字模”,也就是将汉字、字母或其他字符转换成点阵数据,以便于屏幕显示。 取字模软件就是专为这个目的设计的工具,它可以方便地将各种字符转换为适合点阵屏显示的...

    取字模 单片学习,源代码

    在单片机编程中,"取字模"是一个关键概念,尤其在显示点阵字符时非常常见。点阵字模是指用二进制数据表示汉字、字母或符号形状的一种方式,每个点对应屏幕上的一个像素。这里,我们将深入探讨取字模、点阵显示以及...

    诺基亚5110液晶取字模软件

    通过理解字符字模的工作原理和使用这类工具,可以更高效地实现与5110 LCD的通信,提高项目的可读性和用户体验。 总之,诺基亚5110液晶取字模软件是嵌入式开发者的得力助手,尤其对于那些涉及5110 LCD显示的项目。它...

    液晶显示屏取字模软件

    液晶显示屏取字模软件是一种专为1602和12864液晶显示屏设计的应用软件,它能够帮助用户将需要在这些屏幕上显示的文本和图形转换为对应的二进制代码。这种转换过程是实现LCD屏幕显示内容的关键步骤,因为液晶显示屏...

    OLED使用例程加取字模软件

    本资源包提供了一个OLED使用例程和取字模软件,旨在帮助开发者更有效地在OLED屏幕上呈现信息。 首先,我们要理解OLED的工作原理。OLED屏幕由许多自发光的有机材料层组成,每个像素都能独立控制亮度,因此可以实现极...

    单片机取字模软件

    单片机取字模软件是专门用于处理汉字在单片机系统中显示的应用工具,它主要服务于LCD(液晶显示屏)和LED(发光二极管)点阵显示器。这些设备在电子设备的用户界面中广泛使用,如家用电器、工业控制设备、车载信息屏...

    取字模软件

    "取字模软件"是这样一类工具,它允许用户输入特定的字符,然后自动生成该字符的字模数据。字模数据包含了字符在屏幕上的形状信息,用于在各种设备上正确且美观地显示汉字、字母等字符。 字模通常以点阵形式存在,...

    取字模软件Zimo21

    【取字模软件Zimo21】是一款专用于汉字字形获取的专业工具,它在IT行业中主要用于图形设计、字体开发以及编程等领域。字模,即字符的模型,是计算机显示和打印文字的基础,通常以点阵或矢量形式存在。在数字化过程中...

    取字模软件PCtol2002完美版

    《PCtol2002:探索取字模软件的强大功能》 在计算机技术日新月异的今天,各种专业软件的出现极大地提升了我们的工作效率。PCtol2002完美版取字模软件便是其中的一款杰出代表,专为图形字模处理而设计。本文将深入...

    取字模软件,zimo21取字模

    取字模软件,zimo21取字模 此软件生成的点阵库见下图,完全符合点阵液晶的使用。 MSB&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;MSB :::::::::::::: 8位 :::::::::::::: LSB&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;LSB

    zimo21取字模

    "zimo21取字模"是一个针对汉字字形处理的工具或技术,主要用于获取汉字的字模数据。在计算机图形学和字体设计领域,字模是表示字符形状的图像数据,通常由一系列像素点组成,用于在屏幕上显示或打印文字。在本文中,...

    取字模软件.EXE

    取字模软件的主要功能是将文本字符转换为二进制图像数据,这些数据可以在微控制器的显示屏上显示文字。由于8051系列的微控制器通常具有有限的内存和处理能力,因此在这些设备上显示字符通常需要预先将字符编码为特定...

    PCtoLCD2002-OLED取字模工具

    《PCtoLCD2002-OLED取字模工具详解》 在电子设备的开发过程中,尤其是在嵌入式系统设计中,OLED显示模块的字符显示是一个常见的需求。PCtoLCD2002是一款专为OLED屏幕设计的字模生成工具,它能够帮助开发者快速有效...

    TFTLCD显示屏专用取字模软件

    "TFTLCD显示屏专用取字模软件"就是这样一个工具,它专门用于帮助开发者快速、高效地获取文字的C语言参数,以方便在代码中使用。 首先,我们要理解什么是字模。字模是文字在屏幕上的像素表示,由0和1组成,代表每个...

    点阵取字模软件 简单易用

    一款取字模软件 功能介绍: 1.生成中英文数字混合的字符串的字模数据. 2.可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。 3.各种旋转,翻转文字功能 4.任意调整输出点阵大小,并任意调整...

Global site tag (gtag.js) - Google Analytics