`
Function
  • 浏览: 63269 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

文字图片转成点阵的小工具

阅读更多
无聊,写了一个小工具。
将汉字转成点阵,图片转成点阵,看下效果图:





左边的是在记事本里显示的效果,再来一张:










功能还很单一,只能一种颜色,便宜量就是你每次跳几个像素取点。
适用地点:做一些有效果的字,可以用txt的替换工具将点变成其他的。
比如:字为“某某我爱你”,转成点阵后,将字的部分替换为“O”(字母),空格的部分替换为“0”数字,然后发给心爱的人,教她做一个替换,再把字显示出来,嘿嘿。
其实,图片也可以处理,但是效果没有汉字好,色差大!
大家用的时候可以多尝试几个颜色,要是文字图片的话,取灰色就出效果了!

运行环境:JDK6

package com.liu;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Main extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2764274223326342315L;
	private JTextArea showArea;
	private JButton btnOk;

	private JFileChooser jfc;
	private JLabel jLabel3;
	private JTextField point;
	private JLabel jLabel2;
	private JLabel jLabel1;
	private JComboBox offsetbox;
	private JScrollPane jScrollPane1;
	private JButton btnColor;
	private JPanel jpcolor;
	private JButton choosefile;
	private JTextField filepathArea;

	private String YES = "*";

	private String NO = " ";

	private Integer[] cell = new Integer[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };

	private JLabel jlImage = new JLabel();

	private File image;

	private Color color = new Color(0, 0, 0);

	public Main() {
		getContentPane().setLayout(null);
		jfc = new JFileChooser("wenjian");

		btnOk = new JButton();
		getContentPane().add(btnOk);
		btnOk.setText("ok");
		btnOk.setBounds(869, 12, 59, 27);

		jScrollPane1 = new JScrollPane();
		getContentPane().add(jScrollPane1);
		jScrollPane1.setBounds(458, 56, 470, 334);

		showArea = new JTextArea();

		jScrollPane1.setViewportView(showArea);
		showArea.setBounds(458, 56, 470, 334);

		filepathArea = new JTextField();
		getContentPane().add(filepathArea);
		filepathArea.setBounds(12, 12, 150, 27);

		choosefile = new JButton();
		getContentPane().add(choosefile);
		choosefile.setText("\u56fe\u7247 ");
		choosefile.setBounds(174, 12, 89, 27);

		jpcolor = new JPanel();
		getContentPane().add(jpcolor);
		jpcolor.setBounds(294, 17, 25, 22);
		jpcolor.setBackground(Color.BLACK);

		btnColor = new JButton();
		getContentPane().add(btnColor);
		btnColor.setText("\u53d6\u8272");
		btnColor.setBounds(331, 12, 82, 27);

		ComboBoxModel offsetboxModel = new DefaultComboBoxModel(cell);
		offsetbox = new JComboBox();
		getContentPane().add(offsetbox);
		offsetbox.setModel(offsetboxModel);
		offsetbox.setBounds(470, 12, 62, 27);

		jLabel1 = new JLabel();
		getContentPane().add(jLabel1);
		jLabel1.setText("px");
		jLabel1.setBounds(537, 15, 18, 20);

		jLabel2 = new JLabel();
		getContentPane().add(jLabel2);
		jLabel2.setText("\u504f\u79fb\u91cf");
		jLabel2.setBounds(418, 15, 45, 20);

		point = new JTextField();
		getContentPane().add(point);
		point.setBounds(675, 12, 45, 27);
		point.setText(YES);

		jLabel3 = new JLabel();
		getContentPane().add(jLabel3);
		jLabel3.setText("\u586b\u5145\u5b57\u7b26");
		jLabel3.setBounds(592, 15, 80, 20);

		btnColor.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				color = JColorChooser.showDialog(Main.this, "Color", color);
				if (color == null) {
					color = Color.BLACK;
				}
				jpcolor.setBackground(color);
				System.out.println(color.getRGB());
			}
		});

		choosefile.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				getContentPane().remove(jlImage);
				jfc.setDialogTitle("Open JPEG file");
				jfc.showOpenDialog(jfc);
				image = jfc.getSelectedFile();
				if (image == null)
					return;
				String path = image.getAbsolutePath();
				filepathArea.setText(path);
				jlImage = new JLabel(new ImageIcon(image.getAbsolutePath()));
				getContentPane().add(jlImage);
				jlImage.setBounds(0, 56, 470, 334);
			}
		});

		btnOk.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				int offset = cell[offsetbox.getSelectedIndex()];
				showArea.setText("");
				String str = "";

				BufferedImage bi = null;
				try {
					bi = ImageIO.read(image);
				} catch (IOException e1) {
					e1.printStackTrace();
				}

				for (int i = offset / 2; i < bi.getHeight(); i += offset) {
					str = "";
					for (int j = offset / 2; j < bi.getWidth(); j += offset) {
						int pixel = bi.getRGB(j, i);
						if (pixel > color.getRGB()) {
							str += NO;
						} else {
							str += YES;
						}
					}
					showArea.append(str + "\n");
					System.out.println(str);
				}

			}
		});

		this.setSize(969, 453);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		showArea.setFont(new Font("黑体", Font.BOLD, 13));
	}

	public static void main(String[] args) {
		new Main();
	}

}


后面可以加上复合取色,这样图片的效果会好一点,小工具,欢迎交流
  • 大小: 106.9 KB
  • 大小: 54.9 KB
  • 大小: 121.7 KB
  • i2p.rar (196.4 KB)
  • 下载次数: 237
  • 大小: 97.8 KB
6
1
分享到:
评论
5 楼 seasoon 2011-12-26  
用来做十字绣很不错啊,哈哈
4 楼 Function 2011-12-26  
可以用PS设计自己的艺术字,最好粗一点,然后用这个工具进行转换,说用处到是不多,挺好玩的。
3 楼 Function 2011-12-26  
tron.lu 写道

楼主不简单描述一下思路 流程~?

这个就简单说一下,其实也不复杂,获取图片,创建BufferedImage对象,获取图片大小,然后按照偏移量逐行扫描,获取像素上的RGB值,和用户设置的RGB值比较,判断是否输出“*”。可以加上复合色的选取,用户设置多个颜色,然后取色时就可以把图片描述的更形象了。
2 楼 tron.lu 2011-12-26  

楼主不简单描述一下思路 流程~?
1 楼 shidan66 2011-12-26  
不错啊,顶一个~

相关推荐

    点阵液晶取模 图片汉字取模工具

    非常好用的液晶取模工具 LCD12864 1602各种液晶可用 汉字和图片都可取模 图片大小可自设 并可以做动画 自带入门教程 玩转液晶的必备小软件 小工具

    字符点阵引擎V1.4(C#源码)

    文字和图片转点阵的工具,不多说了,自己看吧。

    android使用JNI图片转黑白图片实现点阵图(二值化)

    为android提供的二值化jni库,和完整demo,比Java代码的效率高10s! 一个基于jni的图像处理工具 包括二值化 灰度化 膨胀 腐蚀 等等 是android上图像处理的好例子 还能提高处理速度!实现点阵图的转化

    LCD图形文字点阵提取工具

    LCD 图形生成 点阵,文字,图片都可以,多种模式

    91OCR文字识别COM组件(点阵方式)

    2.附带字库建造工具,可以任意抓图,将图片建造成字库信息,供插件来调用; 3.字库建造工具附带穷举文字程序,可遍历操作系统中所有的字体字号,将其转换为所需要的字库; 4.支持颜色不纯,有所偏差的文字识别及字库...

    图片文字取模工具V2.0绿色版

    图片文字取模工具是一款简单实用的图片取模软件,图片文字取模工具能够帮助用户进行简单绿色的图片取模,实现任意大小任意字体的文字取模以及任意大小任意格式的图片,软件操作简单,有需要的朋友快来下载试试吧!...

    最新unicode点阵字库生成工具(fontmaker)

    (适合小字库) b. 增加了 “扫描方向及反显”设置。 2. Multi-Language V1.01 a. 修改了除 office 2000 外,其它不能支持的问题。 V1.00: (20110627) 1. 继承 FontMaker V2.01 的所有功能。 2. 增加了一个...

    广告制作 LED灯 LED显示屏 点阵软件 任意点阵字库生成工具

    2、支持使用从12x12到256x256任意点阵大小进行文字取模[例如16x48],考虑到实用因素,并未对宽高超过256x256的点阵进行支持; 3、支持图片和文字混合排版编辑,图片源目前支持BMP、JPEG、ICO、EXE、DLL格式的文件,...

    OCR文字自动识别工具

    即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是...

    91OCR文字识别软件 3.6版

    本软件将图象制作成点阵信息保存于字库,可以进行文字识别,典型用在游戏辅助工具的制作! SimPlugOCR.dll为文字识别组件,如果用按键精灵的放在精灵的plugin目录进行调用;VB, VC, Delphi, BCB, PB... 等开发环境...

    多国语言开发必备工具(点阵字库+多国语言文本管理+MTK 字库+字库解析源码 c)

    (适合小字库) b. 增加了 “扫描方向及反显”设置。 2. Multi-Language V1.01 a. 修改了除 office 2000 外,其它不能支持的问题。 V1.00: (2007-2011) 1. 继承 FontMaker V2.01 的所有功能。 2. 增加了一...

    取字模软件

    图片文字取模工具软件是一款任意大小任意字体的文字取模&任意大小任意格式的图片取模图片文字取模工具的功能和特点:1、字模输出格式有汇编和C语言两种2、取模方式 可横向或纵向 可字节倒序 可反色3、在提取矢量字库...

    点阵模软件

    文字输入完毕后,用Ctrl+Enter结束输入,不再提供工具按钮。 03。取模原则:以字节为单位,若不符合 8 的倍数时,补足位数。看图象就知道哦。 04。当横向取模时是宽度满足上述原则。 05。当纵向取模时是高度满足上述...

    字库工具 guitool(Trial) Setup 1.13.rar

    + 增加了单个字符或多个字符输出成位图文件设定。 * 完善了阿拉伯文字库(unicode 字库有效)。 + 增加自定义字符功能(unicode 字库有效)。 Multi-language(多国语言) + 增加输出编码格式 (mbcs, utf16-lb, ...

    PCtoLCD2002_取模软件

    我这里测试是3万多字的TXT文件在2分钟内转成16X16点阵的字库文件。 版本号为pctolcd2.53 由于本软件侧重于对字符的处理,所以在图象方面功能较弱,请见晾。 5月8日发布正式版 正式版已经开始朝着液晶字库生成...

    PhotoLine 21.5 Keygen.exe

    还能用来批量转换图像文件格式(在转换过程中还可以进行自动化修改操作)、快速浏览文件夹中的图片、修正数码相片白平衡、将点阵图片转换为矢量图片等等,是一个图像处理的多面手。用它绘制线型、编辑文字、修改插图...

    验证码识别

    2.附带字库建造工具,可以任意抓图,将图片建造成字库信息,供插件来调用; 3.字库建造工具附带穷举文字程序,可遍历操作系统中所有的字体字号,将其转换为所需要的字库; 4.支持颜色不纯,有所偏差的文字识别及字库...

    大漠插件2.1151--前后台,文字识别,图色,键鼠,窗口,内存

    15. 支持识别指定图片中的文字 16. 支持在代码中添加字库 图色方面 1. 所有图色接口都支持后台gdi 后台gdi2 后台dx 后台dx2 后台dx3 以及前台normal 2. 支持颜色查找,多种颜色查找,并可指定搜索的方向以及相似度 ...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    推荐通用文字图片JS不间断滚动封装类 代替Marquee 15.站长推荐全新兼容DIV+CSS版中国地图 JS+DIV+CSS支持热点效果的中国地图 16.支持4级树形 展开菜单插件dTree原版下载 2)JQuery Tab 1.jQuery.Switchable...

Global site tag (gtag.js) - Google Analytics