文字图片转成点阵的小工具
无聊,写了一个小工具。
将汉字转成点阵,图片转成点阵,看下效果图:
[img]http://dl.iteye.com/upload/attachment/611624/4189635f-f9e2-30bc-94bf-a3f6788703c4.jpg[/img]
左边的是在记事本里显示的效果,再来一张:
[img]http://dl.iteye.com/upload/attachment/611617/ea85e02d-22aa-32bc-9b36-9a3cbaba0e90.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/611619/fae17897-aa09-3219-9cbf-82d167fcc9dc.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/611621/be6510a1-052e-3f5b-963f-1254a90db43d.jpg[/img]
功能还很单一,只能一种颜色,便宜量就是你每次跳几个像素取点。
适用地点:做一些有效果的字,可以用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(); }
}
后面可以加上复合取色,这样图片的效果会好一点,小工具,欢迎交流
文字图片转成点阵的小工具相关推荐
- canvas将图片转成点阵
前言 最近在掘金里看到了这篇文章:产品经理:你能不能用div给我画条龙? ,很有意思,通过canvas提取图片的像素,然后将图片转成点阵图. 按照文章,尝试了好多次,都没有成功.最后只能研究一下原理, ...
- WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
WeChat之小工具:基于C++程序代码设计的查看微信撤销.撤回消息(包括文本.图片.视频等)GUI小工具 导读 哈哈,千万不要给程序猿随便发信息,程序猿认真起来,别说你发的微信信息,就连你 ...
- 文字图片转换成word文档的方法?
在很多情况下,我们都想把图片上的文字转成word文档文字,但是由于没有好的方法,能不转换的就不转换,比如说图片上的文字比较少,通常的做法就是手动输入到word文档中,要是图片上的是文章,在没有必要的情 ...
- 循环显示图片、按键抽奖的小工具
一个朋友结婚,让我帮他找一个小工具,网上没有找到,很简单,就自己写了一个,有需要的朋友可以自行下载-_- 作用是这样的:结婚当天会用数码相机拍很多照片,然后在结婚仪式的最后把这些照片导入电脑,用一个小 ...
- 【游戏开发】Excel表格批量转换成CSV的小工具
一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就 ...
- 文字图片转换成html,将图片转换成HTML格式的文字图程序源代码
将图片转换成HTML格式的文字图程序源代码 将图片转换成HTML格式的文字图程序源代码.txt喜欢我这是革命需要,知道不?! 你不会叠衣服一边呆着去!以后我来叠! 我一定要给你幸福,谁也别想拦着. ■ ...
- 长图片切割成多个小图片----python实现
在上一篇文章发表提纲时,发现图片的分辨率过于高,从而导致大小超过5M无法上传,发现网上大多要收费或者限制大小,因此自己用python写了切割器对长图进行切割.注意本程序是将一整个图片横向切开,切成多份 ...
- python小应用之整理手机图片_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...
整理完这些资料已经凌晨3点了,困得眼睛都睁不开,一想到明天就截稿了,他只好随便拼凑一篇应付. 结果可想而知,导师还没看完第一页就把论文给退回来了,说论文通篇缺乏具体数据分析,研究计划就很粗糙,实施起来 ...
- C#:一个拖拽网页图片到本地存储的小工具
当年上学时候写的一个很简单的东西,拖动图片到程序中自动重命名保存到指定位置, 原图文地址:http://user.qzone.qq.com/652768664/blog/1363151915 usin ...
最新文章
- vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
- Linux组管理和权限管理
- sqlserver 动态表名 动态字段名 执行 动态sql
- 实现 VUE 中 MVVM - step10 - Computed
- 项目实战:Qt+OpenCV激光射击游戏(识别激光、识别圆)
- surface人脸识别摄像头不支持的情况解决方案
- Linux运维职业困惑?给你史上最全互联网Linux工作规划!
- 《富爸爸穷爸爸》第一课
- 浏览器如何工作~(转)
- ~scanf的意思、作用
- 关于计算机未来理想,关于未来与梦想的作文
- 剑~~~~~~~~~~
- 金山中学 rugular SRM 04 ——纪念我的第一次Ak
- 应用消息队列设计可以解决哪些实际问题?
- JQuery的可见性选择器与show、hide的关系
- android 距离校准,通过距离校准设备提升WiFi定位精度的方法与流程
- 皮尔森相关系数_追逐梦想的顾咏丰_新浪博客
- 新海诚画集[秒速5センチメートル:樱花抄·遠野家]
- 使用flurry实时收集Android程序运行情况
- Sketch-Based Skeleton-Driven 2D Animation and Motion Capture 翻译
热门文章
- 【无线网络渗透 】如何使用Aircrack-ng 系列工具进行WPA/WPA2的监听和破解
- poi处理word内容的公式_Java 使用 POI 操作 XWPFDocument 中的 XWPFParagraph(段落)对象的属性略解 Wor - 链滴...
- 快速gcd vs 普通gcd
- HMMer在Windows环境下的安装
- 2022中国企业家博鳌论坛耿明雨致白皮书
- python基于django校园信息管理平台设计与实现(项目源码+视频录制+截图)
- 利用range表单元素实现调色板
- matlab数据归一化与反归一化处理
- Python print连续输出不换行
- 单源最短路径:最短路径性质的证明