将图片转换成符号TXT文本
2017-12-28 14:10
489 查看
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class ConvertImage2Txt { public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); System.out.println("请输入图片地址"); String img_file = scanner.nextLine(); System.out.println("请输入TXT存储地址"); String out_file = scanner.nextLine(); // 读取图片 BufferedImage binaryBufferedImage = ImageIO.read(new File(img_file)); int orgWidth=binaryBufferedImage.getWidth(); int orgHeight=binaryBufferedImage.getHeight(); int size=Math.max(orgHeight,orgWidth); int w = size>1000?binaryBufferedImage.getWidth()/3:orgWidth; int h = size>1000?binaryBufferedImage.getHeight()/3:orgHeight; binaryBufferedImage.getGraphics().drawImage(binaryBufferedImage, 0, 0, w, h, null); BufferedWriter bw = new BufferedWriter(new FileWriter(out_file)); final String base = "@#&$%*o!;.";// 字符串由复杂到简单 for (int y = 0; y < h; y += 2) { for (int x = 0; x < w; x++) { final int pixel = binaryBufferedImage.getRGB(x, y); final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff; final float gray = 0.299f * r + 0.578f * g + 0.114f * b; final int index = Math.round(gray * (base.length() + 1) / 255); bw.write((index >= base.length() ? " " : String.valueOf(base.charAt(index)))); } bw.newLine(); } bw.close(); } }
相关文章推荐
- Matlab将图片转换成asc码txt文本格式
- java 图片转txt文本,文本转换图片
- 请教Ado.Net按文本读取CSV/Txt文件时,如何禁止将内容转换成数字
- 把文字图片转换成文本文字
- iOS读取本地的TXT文本信息,转换成json
- matlab从文本txt文件中读入十六进制数据到矩阵并转换成十进制
- Android-读取本地文本,把Base64 datastring转换为图片
- 图片转换为文本样式
- 将txt文本中的图片路径的图片读到某文件夹下
- nodejs将PDF文件转换成txt文本,并利用python处理转换后的文本文件
- 【将txt文本转图片】
- java 文件相互转换-文本与图片相互转换
- 如何将图片文件里的图片名转换为TXT文档
- 文本转换为图片
- php将HTML转换为txt文本的函数
- C#多文档 含父窗体 Word文档读取文本 转换txt
- 转:将图片转换成16进制的代码写入文本
- 将文本转换成图片
- 以制表符分隔的TXT文件转换成Supermemo可直接导入的文本格式的过程图解
- C# 把图片转换成字符串存入.txt文件中,并从.txt中读出生成图片