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

[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();   }

}

后面可以加上复合取色,这样图片的效果会好一点,小工具,欢迎交流

文字图片转成点阵的小工具相关推荐

  1. canvas将图片转成点阵

    前言 最近在掘金里看到了这篇文章:产品经理:你能不能用div给我画条龙? ,很有意思,通过canvas提取图片的像素,然后将图片转成点阵图. 按照文章,尝试了好多次,都没有成功.最后只能研究一下原理, ...

  2. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具

    WeChat之小工具:基于C++程序代码设计的查看微信撤销.撤回消息(包括文本.图片.视频等)GUI小工具 导读      哈哈,千万不要给程序猿随便发信息,程序猿认真起来,别说你发的微信信息,就连你 ...

  3. 文字图片转换成word文档的方法?

    在很多情况下,我们都想把图片上的文字转成word文档文字,但是由于没有好的方法,能不转换的就不转换,比如说图片上的文字比较少,通常的做法就是手动输入到word文档中,要是图片上的是文章,在没有必要的情 ...

  4. 循环显示图片、按键抽奖的小工具

    一个朋友结婚,让我帮他找一个小工具,网上没有找到,很简单,就自己写了一个,有需要的朋友可以自行下载-_- 作用是这样的:结婚当天会用数码相机拍很多照片,然后在结婚仪式的最后把这些照片导入电脑,用一个小 ...

  5. 【游戏开发】Excel表格批量转换成CSV的小工具

    一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就 ...

  6. 文字图片转换成html,将图片转换成HTML格式的文字图程序源代码

    将图片转换成HTML格式的文字图程序源代码 将图片转换成HTML格式的文字图程序源代码.txt喜欢我这是革命需要,知道不?! 你不会叠衣服一边呆着去!以后我来叠! 我一定要给你幸福,谁也别想拦着. ■ ...

  7. 长图片切割成多个小图片----python实现

    在上一篇文章发表提纲时,发现图片的分辨率过于高,从而导致大小超过5M无法上传,发现网上大多要收费或者限制大小,因此自己用python写了切割器对长图进行切割.注意本程序是将一整个图片横向切开,切成多份 ...

  8. python小应用之整理手机图片_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...

    整理完这些资料已经凌晨3点了,困得眼睛都睁不开,一想到明天就截稿了,他只好随便拼凑一篇应付. 结果可想而知,导师还没看完第一页就把论文给退回来了,说论文通篇缺乏具体数据分析,研究计划就很粗糙,实施起来 ...

  9. C#:一个拖拽网页图片到本地存储的小工具

    当年上学时候写的一个很简单的东西,拖动图片到程序中自动重命名保存到指定位置, 原图文地址:http://user.qzone.qq.com/652768664/blog/1363151915 usin ...

最新文章

  1. vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
  2. Linux组管理和权限管理
  3. sqlserver 动态表名 动态字段名 执行 动态sql
  4. 实现 VUE 中 MVVM - step10 - Computed
  5. 项目实战:Qt+OpenCV激光射击游戏(识别激光、识别圆)
  6. surface人脸识别摄像头不支持的情况解决方案
  7. Linux运维职业困惑?给你史上最全互联网Linux工作规划!
  8. 《富爸爸穷爸爸》第一课
  9. 浏览器如何工作~(转)
  10. ~scanf的意思、作用
  11. 关于计算机未来理想,关于未来与梦想的作文
  12. 剑~~~~~~~~~~
  13. 金山中学 rugular SRM 04 ——纪念我的第一次Ak
  14. 应用消息队列设计可以解决哪些实际问题?
  15. JQuery的可见性选择器与show、hide的关系
  16. android 距离校准,通过距离校准设备提升WiFi定位精度的方法与流程
  17. 皮尔森相关系数_追逐梦想的顾咏丰_新浪博客
  18. 新海诚画集[秒速5センチメートル:樱花抄·遠野家]
  19. 使用flurry实时收集Android程序运行情况
  20. Sketch-Based Skeleton-Driven 2D Animation and Motion Capture 翻译

热门文章

  1. 【无线网络渗透 】如何使用Aircrack-ng 系列工具进行WPA/WPA2的监听和破解
  2. poi处理word内容的公式_Java 使用 POI 操作 XWPFDocument 中的 XWPFParagraph(段落)对象的属性略解 Wor - 链滴...
  3. 快速gcd vs 普通gcd
  4. HMMer在Windows环境下的安装
  5. 2022中国企业家博鳌论坛耿明雨致白皮书
  6. python基于django校园信息管理平台设计与实现(项目源码+视频录制+截图)
  7. 利用range表单元素实现调色板
  8. matlab数据归一化与反归一化处理
  9. Python print连续输出不换行
  10. 单源最短路径:最短路径性质的证明