java将图片传为设定编码值显示(可做刺绣)
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class AsciiPic
{
/**
* @param path
* 图片路径
*/
public static void createAsciiPic(final String path) {
final String base = "@#&$%*o!;.";// 字符串由复杂到简单
try {
final BufferedImage image = ImageIO.read(new File(path));
for (int y = 0; y < image.getHeight(); y += 2) {
for (int x = 0; x < image.getWidth(); x++) {
final int pixel = image.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);
System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index)));
}
System.out.println();
}
} catch (final IOException e) {
e.printStackTrace();
}
}
public static String _BitmapConvert(String imgpath) {
StringBuffer _sb = new StringBuffer();
File imgfile = new File(imgpath);
char[] charset = { 'L', '5', '2', '0', 'q', ':', '*', '|', '.', ' ' };// 字符串由复杂到简单
try {
BufferedImage buff = ImageIO.read(imgfile);
int bitmapH = buff.getHeight();
int bitmapW = buff.getWidth();
for (int y = 0; y < bitmapH; y++) {
for (int x = 0; x < bitmapW; x++) {
int rgb = buff.getRGB(x, y);
Color c = new Color(rgb);
int cc = (c.getRed() + c.getGreen() + c.getBlue()) / 3;
_sb.append(charset[(int) ((cc * 10 - 1) / 255)]);
}
_sb.append("\r\n");
}
} catch (Exception e) {
}
return _sb.toString();
}
/**
* test
*
* @param args
*/
public static void main(final String[] args) {
String src = "C:xxx.jpg";
AsciiPic.createAsciiPic(src);
//System.out.println(_BitmapConvert(src));
}
}
原图与效果图


java将图片传为设定编码值显示(可做刺绣)的更多相关文章
- java中图片文件的传输及显示(Socket以及ServerSocket演示)
//客户端部分 package testSix; import java.awt.Graphics; import java.io.IOException; import java.io.InputS ...
- java将图片输出base64位码显示
注意需要过滤:\r \n数据 jkd1.7的 import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; /** * 网络图片转换Base ...
- java 验证码图片处理类,为验证码识别做准备
/* * To change this template, choose Tools | Templates * and open the template in the editor. */pack ...
- Spring MVC 上传、下载、显示图片
目录 1. 准备工作 1.1 数据库表准备 1.2 实体类 User 和 Mapper(DAO) 1.3 pom.xml 依赖包 1.4 SSM 框架的整合配置 2. 控制器 UserControll ...
- java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。
java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...
- Easyui前端、JAVA后台 上传附件
前端使用easyui框架,后台使用JAVA 的JFinal框架开发 功能描述:实现附件上传功能.文件上传路径为:../upload(上传文件夹)/身份证号/慢病编码/上传的附件. 细节要求:实现多图片 ...
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- java压缩包上传,解压,预览(利用editor.md和Jstree实现)和下载
java压缩包上传,解压,预览(利用editor.md和Jstree实现)和下载 实现功能:zip文件上传,后台自动解压,Jstree树目录(遍历文件),editor.md预览 采用Spring+Sp ...
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
随机推荐
- Python初学(1)
最近在学习python,以后想编写一些工作中用的到的脚本.python的入门我选择了<python从初学到入门>,这篇文章我会跟进我的学习进度.算是一个笔记吧. 我本身是熟悉C语言的,看p ...
- nodeJs 操作Mysql数据库
nodeJs下操作数据库需要安装npm模块: mysql npm install mysql --save-dev 新建express项目 express --view=ejs 在项目根目录下新建数据 ...
- 属性控件CMFCPropertyGridCtrl简单用法
这是我的原创! 用一堆的编辑框下拉框做配置界面,很是繁琐,还要对齐排版……用这个属性控件 CMFCPropertyGridCtrl 就可以统一风格了. //初始化 CMFCPropertyGridCt ...
- Linux su命令
本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行, ...
- Selenium分布式自动化测试平台 Standalone Server 4.0 搭建
最新的selenium测试平台大概有这么几个组件 Selenium Standalone Server: 用来搭建远程测试平台以及分布式测试. Selenium WebDriver: 最基础的用来创建 ...
- (转)IIS7无法读取配置文件解决办法
web.config 太大导致”出现无法读取配置文件,因为它超过了最大文件大小”错误问题的解决方法,如下:HKLM\SOFTWARE\Microsoft\InetStp\Configuration\M ...
- CAS 无锁队列
队列是常用的数据结构,采用的FIFO(first in firstout)原则,新元素(等待进入队列的元素)总是被插入到尾部,而读取的时候总是从头部开始读取.在计算中队列一般用来做排队(如线程池的等待 ...
- Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期
1.获取当前时间一周前的日期 ' day from dual 类似的 --当前时间减去7分钟的时间 ' MINUTE from dual --当前时间减去7小时的时间 ' hour from dual ...
- 冒泡排序 & 选择排序(升序)
软件工程上老师讲流程图时,要求画冒泡排序和选择排序的流程图--------问题来了,故想基于百度两种排序后,自我总结的写些什么 请将一维数组a[n] 里面的 n个元素 升序排好 ---------- ...
- css3-study-new
不错的:http://c7sky.com/works/css3slides/#28