package yumo.game;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import javax.swing.JTextArea;
public class ImgToCharacter {
private static BufferedImage[] realImgs;
private static BufferedImage[] charImgs;
private static int size = 4;
private static String[] chars= {" ",".",":",";","-","~","1","i","o","r","a",
"2","c","3","b","n","q","k","x","S","X",
"7","Z","O","8","#","$","%","&","M","B",
"W","@","@"};
public static void draw() {
int interval = 16777215 / (chars.length-1) ;
BufferedImage oneRealImg = null;
int index = 0;
while(index < realImgs.length) {
oneRealImg = realImgs[index];
int width = oneRealImg.getWidth();
int height = oneRealImg.getHeight();
BufferedImage oneCharImg = new BufferedImage(width*3, height*3,BufferedImage.TYPE_INT_RGB);
Graphics g = oneCharImg.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, oneCharImg.getWidth(), oneCharImg.getHeight());
g.setColor(Color.BLACK);
g.setFont(new Font("黑体", Font.BOLD, 15));
for(int i= 0 ; i < height ; i+=size){
for(int j = 0 ; j < width; j+=size){
int rgb = getAvgRGB(j, i, oneRealImg);
int k = rgb/interval;
g.drawString(chars[k], 12*j/size, 12*i/size);
}
}
g.dispose();
charImgs[index] = oneCharImg;
index++;
}
}
public static void readGiF() {
try {
File f = new File(Client.input);
String name = f.getName();
String suffix = name.substring(name.lastIndexOf('.')+1);
Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix);
ImageReader reader = iter.next();
ImageInputStream imageIn;
imageIn = ImageIO.createImageInputStream(f);
reader.setInput(imageIn);
int count = reader.getNumImages(true);
realImgs = new BufferedImage[count];
charImgs = new BufferedImage[count];
for(int i=0; i< count; i++) {
realImgs[i] = reader.read(i);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static BufferedImage[] getCharImgs() {
return charImgs;
}
public static int getAvgRGB(int i, int j, BufferedImage img) {
int result = 0;
for(int m=0; m<size; m++) {
for(int n=0; n<size; n++) {
if(i+m < img.getWidth() && j+n < img.getHeight())
result += img.getRGB(i+m, j+n);
}
}
return Math.abs(result) / (size*size);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ImgGIF2CharGIF.zip (69个子文件)
ImgGIF2CharGIF
new.gif 1.04MB
1.gif 423KB
src
yumo
game
Client.java 2KB
ImgToCharacter.java 3KB
GamePanel.java 2KB
bin
yumo
game
ImgToCharacter.class 4KB
MainFrame.class 3KB
Client$1.class 658B
Client.class 702B
GamePanel$MyThread.class 1KB
GamePanel.class 2KB
.classpath 301B
.settings
org.eclipse.jdt.core.prefs 598B
charGif
43.jpg 47KB
4.jpg 38KB
50.jpg 39KB
38.jpg 47KB
26.jpg 39KB
48.jpg 43KB
11.jpg 49KB
49.jpg 44KB
47.jpg 45KB
14.jpg 42KB
21.jpg 46KB
31.jpg 43KB
0.jpg 51KB
45.jpg 41KB
51.jpg 36KB
28.jpg 36KB
37.jpg 47KB
35.jpg 48KB
12.jpg 49KB
17.jpg 45KB
41.jpg 51KB
44.jpg 44KB
36.jpg 43KB
46.jpg 39KB
39.jpg 46KB
29.jpg 42KB
52.jpg 37KB
25.jpg 42KB
15.jpg 46KB
13.jpg 49KB
33.jpg 50KB
34.jpg 50KB
27.jpg 41KB
54.jpg 37KB
30.jpg 42KB
3.jpg 41KB
32.jpg 49KB
20.jpg 50KB
16.jpg 48KB
6.jpg 35KB
18.jpg 52KB
10.jpg 48KB
1.jpg 44KB
24.jpg 46KB
7.jpg 41KB
9.jpg 43KB
53.jpg 41KB
22.jpg 43KB
23.jpg 44KB
42.jpg 49KB
2.jpg 46KB
40.jpg 52KB
8.jpg 42KB
19.jpg 50KB
5.jpg 41KB
.project 390B
共 69 条
- 1
资源评论
- 波妞爱学习2016-12-21感谢分享!
- qq_369878232018-01-07感谢分享!期待更多的分享
- pa52013142016-12-29感谢分享 可以使用
白日焰火
- 粉丝: 327
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功