java实现图片转ascii字符画的方法示例

2025-05-29 0 20

最近抖音上挺火的一个小把戏,在记事本打开,一整篇的乱码字符,然后进过调整之后,出现一张由各种字符组成的黑白照片。先看一个效果图

效果如下:

java实现图片转ascii字符画的方法示例

java实现图片转ascii字符画的方法示例

实现原理:

图片分解为像素点然后计算出每个点的灰度值,根据不同的灰度用不同的字符填充.

具体代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46
package com.dongge;

import java.awt.image.bufferedimage;

import java.io.file;

import java.io.ioexception;

import javax.imageio.imageio;

/**

* @author 东哥 2016年10月27日

*

*/

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

}

}

/**

* test

*

* @param args

*/

public static void main(final string[] args) {

asciipic.createasciipic("d:\\\\20161027095850.png");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/renhd_1987/article/details/52948978

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java实现图片转ascii字符画的方法示例 https://www.kuaiidc.com/111078.html

相关文章

发表评论
暂无评论