JAVA娱乐小项目——将图片转化为字符画

简介: JAVA娱乐小项目——将图片转化为字符画

前言

灵感来源于JAVA课上同学の颜文字表情,于是决定做一个JAVA小项目来娱乐玩一下QAQ

代码

1. package test;
2. import javax.imageio.ImageIO;
3. import java.awt.*;
4. import java.awt.image.BufferedImage;
5. import java.io.File;
6. import java.io.IOException;
7. 
8. public class image_text {
9. public static void main(String[] args) {
10. // 读取图片文件
11. File imageFile = new File("path/to/your/image.jpg");
12. try {
13. // 将图片转换为BufferedImage对象
14. BufferedImage bufferedImage = ImageIO.read(imageFile);
15. 
16. // 设置字符画的宽度和高度
17. int asciiWidth = 80;
18. int asciiHeight = 40;
19. 
20. // 缩放图片以适应字符画的宽度和高度
21. BufferedImage resizedImage = new BufferedImage(asciiWidth, asciiHeight, BufferedImage.TYPE_INT_RGB);
22. Graphics2D g2d = resizedImage.createGraphics();
23.             g2d.drawImage(bufferedImage, 0, 0, asciiWidth, asciiHeight, null);
24.             g2d.dispose();
25. 
26. // 将图片转换为字符画
27. char[] asciiChars = {'@', '#', 'S', '%', '?', '*', '+', ';', ':', ',', '.'};
28. StringBuilder asciiArt = new StringBuilder();
29. for (int y = 0; y < asciiHeight; y++) {
30. for (int x = 0; x < asciiWidth; x++) {
31. Color pixelColor = new Color(resizedImage.getRGB(x, y));
32. int grayValue = (pixelColor.getRed() + pixelColor.getGreen() + pixelColor.getBlue()) / 3;
33. int index = Math.min((int) (grayValue * asciiChars.length / 255.0), asciiChars.length - 1);
34.                     asciiArt.append(asciiChars[index]);
35.                 }
36.                 asciiArt.append("\n");
37.             }
38. 
39. // 输出字符画
40.             System.out.println(asciiArt.toString());
41.         } catch (IOException e) {
42.             e.printStackTrace();
43.         }
44.     }
45. }

效果演示

 

1. ,,,,,,,,,,,,:...................................................................
2. ,,,,,,,,,,,,,,,,................................................................
3. ,,,,,,,,,,,,,,,,,,,.............................................................
4. ,,,,,,,,,,,,,,,,,,,,,,...........@@@,...@%......................................
5. ,,,,,,,,,,,,,,,,,,,,,,,,,.......,@+++;@@@;@,;@@@@@@;............................
6. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,......;@@?;;:;@@;;;;;;;;%@@@@.......................
7. ,,,,,,,,,,,,,,,,,,,,,,,,@@@@@*+;;*@@@@@#;;;:.;;;;...;;;;+@@.....................
8. ,,,,,,,,,,,,,,,,,,,,,@@@;;;;;;;;;;;;;;;;;;....:;..;;;%;;;;S@@...................
9. ,,,,,,,,,,,,,,,,,,,@@%;..,+%SSSS*::;;;;;#;+*#@***;:;;;;%%;;;S@@.................
10. ,,,,,,,,,,,,,,,,,@@:..+%SS*,.,;;;..;;;+@**@%???@@**;;;..;%%?;;@@S...............
11. ,,,,,,,,,,,,,,,@@*;;SS?*;..;;;;..;?;+*@*S?S@@S??%@%**;;;..;%S+;;@@:.............
12. .,,,,,,,,,,,,@@?;;*?;;;;,;;;;;..*%;;*@@#+++++++@@@@@**;;;;.,%S%;;*@@............
13. ...,,,,,,,,@@#;;;;;;+;;;;?%;;..;%%;**@+++++++++++++@@**;*@;..;S%;.;@@S..........
14. ......,,,,@@;*;;;;.?+;;;S%;;,..;%%;*@@++++::::::::++@@**;*S@;.:SS;.;*@@.........
15. .........@@;*;;S;.??;;;%%+;;;;*;%%;*@@+++;:::::::::++@@**;**@;;*?*;,;*@@........
16. ........@@;*?;?S,.@*;;;%%;;,.;**;;;*@@+++::::::::::++@@@?*;*%@;.:**;.;*@#.......
17. .......*@;;@*;S%.,@*;;+%%;;+:;**;;;*S@@@@@@;::::::@@@;::?@@@%@@,+*@*;.*@@.......
18. .........@@@?;%%;,@*;;;%%;;*;;*@?;;**@%::..@@@::@@........:;@@@+;*@@*;*@@.......
19. ...........@*;*%;%@*;;;%%;;*S;**@@@#@@@;.....S@@@.......?@@@#;@@+**@#+*@#.......
20. ...........@#+;%%%@**;;;;;;**@%@@@;*+;;;@@@@@.@@@.......@@@@@.:@@@@@@**@........
21. ...........@@*;;;*@**;;;;;;**@@@:......#@@@@@.*@@.......*@@@#.@@*@@.............
22. ...........,@*;;;*@S**;;;;;+?@@@........?@@@..@@@@...........S@:+@@.............
23. ............@@@@@?@@@@@@@@@@%+@@@............@@::S@@.......%@@::+#@%............
24. ..............:@@+++????????***:@@@;......+@@@@S?*S@@@@@@@@:+????#@S............
25. ...............@@;::?????*****?::::+@@@@@@%;;;;;;;;;;;+@@::??????@@,............
26. ...............@@@::???????**??:::::::;@@;;;;;;;;;;;;;;@@:???????@@.............
27. ................@@@::?????????::::::::@@@@@@@@@@@@@@@@*@*:??????@@,,............
28. .................?@@::::;;;;::::::::::::@@@;;;;;;;;;@@@::::???@@@,,,,,..........
29. ...................@@@**@@@@#;;;;;;;;::::::@@@@@@@#::::::::+@@@,,,,,,,,,,.......
30. .....................?@@S%%%%@@@@@@@;;;;;;;;;::::::::::?@@@@*,,,,,,,,,,,,,,,....
31. ....................;@@#%%%%%%%S%%%%%S@@@@@@*;;;;;;%@@@@@@@,,,,,,,,,,,,,,,,,,,,.
32. ...................,@@@@@@%%%%???????%%%%%%%%%%%%%%%%%%%%?@@,,,,,,,,,,,,,,,,,,,,
33. ...................@.;;;S@@S@@@@S%??????????????????%@@@@@@+,,,,,,,,,,,,,,,,,,,,
34. ..................S@....;;@@@@%SSS##@@@@@@@@@@@@@@@@@@:@@%S@@,,,,,,,,,,,,,,,,,,,
35. ..................@S@@#..;#@%@@::@%????????????@:+@@;.@@%%SSS@*,,,,,,,,,,,,,,,,,
36. .................@S%%SS@,.;@@%%%?%@@?:%@#S#S.,*@%%@@.:@%%%%%SS@@..,,,,,,,,,,,,,,
37. ................@S%%%%%%@,.@@%%?????????#:.#@???%%@,.@#%%%%%%SS@@....,,,,,,,,,,,
38. ................#S%%%%%%%@.S@@%%?????????:@????%%@@.:@%%%%%%%%SS@?......,,,,,,,,
39. ...............#SS%%%%%%%@:;@@%%???????@:,:::??%%@@.:@%%%%%%%%%SS@........,,,,,,
40. ...............@S%%%%%%%%S@.@@%%??????%,.::..%?%%@@,:@%%%%%%%%%SS@?..........,,,

 

1. ::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
2. :::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
3. :::::::::::::::::::.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4. ::::::::::::::::::::::.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
5. :::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6. :::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
7. ::::::::::::::::::::::::::::::.,,,,,,,,,,,,,,,,,@@@@@@@@@@,,,,,,,,,,,,,,,,,,,,,,
8. ::::::::::::::::::::::::::::::,,,,,,@@@@@@@,,,@@@*;;;;;;*@@@@S,,,,,,,,,,,,,,,,,,
9. :::::::::::::::::::::::::::::::@@@@@@;;;;+@@@@@;;..:,:::,..;;@@@@,,,,,,,,,,,,,,,
10. :::::::::::::::::::::::::::S@@@@+;;;;;;.....;.,:..::::::::::;;*+@@@?,,,,,,,,,,,,
11. ::::::::::::::::::::::::#@@@%++;;+++*+:::,..:@@;.;@@@;;;:,,::::;;+S@@@,,,,,,,,,,
12. :::::::::::::::::::::;@@@**.,+*++:::,:,:::;;@@*+@@@*@@@@;;;;:::,.;;+*@@@,,,,,,,,
13. :::::::::::::::::::@@@@+;.:*++::.::;;;;::;;@@?@@@@@@@@@@@@*;;.,:::.;;+*@@@.,,,,,
14. :::::::::::::::::@@@%+.,;++*:::.:**;;:,::;;@@@@@%+**+****@@S+;.@@?:,.;;**@@.,,,,
15. ,::::::::::::::S@@%*.;;;:+,,,:.;*+;;:,*+;;@@#***+:::::+***@@@+;;@@@:,.;;++@@*,,,
16. ,,,:::::::::::@@@*,,;;.:?@@;;.:+*;;;::++;;@@;++:::::::::*+*@@#+;;?@@::.;;+*@@,,,
17. ,,,,,,:::::::@@+;.;;;.,:@@;;,:++;;;.,:*;;;@@S%#@@@#:::::::#@@@*.;;+@@::.;;*+@@,,
18. ,,,,,,,,,::+@@*;,;;*:.:@@;;:.**;;;.::+*;;;@@;;....S@@:::@@@;@@#+.;;*@@::,;;+@@@,
19. ,,,,,,,,,,,@@+;@@#++.,,@@*;.,**;;:,:,;;;;+@@;;......@@%@@..;*@@@@@@+*@@:::;;;@@,
20. ,,,,,,,,,,S@@;:@@;++.:;@@*;.;*;;;.::;@@;;;@@;...@@@@.@@@....;;;;@@@@@@@@;;+;;@@,
21. ,,,,,,,,,,,,@@@@@;*+.:%@@+;.**;;@@,;;*@@@@@@;..@@@@@:@@@.......@@@@@;?@@*;+*;@@,
22. ,,,,,,,,,,,,,,:@@;++::S@@+;:++;#@@#@@@@;;S@@;;..#@@..@@@........@@@.;@@@@@+*@@,,
23. ,,,,,,,,,,,,,,+@@;++;;+@@*;::;;@@@@**+@@@..;;;......@@+@@,.........@@@***@@@@,,,
24. ,,,,,,,,,,,,,,,@@*@@@@@@@*;;;;;#@@%%*:::@@@,.....+@@@@@@@@@@....?@@@:????#@?,,,,
25. ,,,,,,,,,,,,,,,S@@S@@**@@@@@@@@@@@%%?:::::,@@@@@@@*+;;;;;+;#@@@@;::;??????@@,,,,
26. ,,,,,,,,,,,,,,@@@@@@@;;%%%%%%%%%%%???;::::::::@@;;;;;;;;;;;;;%@%:::???????@@,,,,
27. ,,,,,,,,@@@@@#***??@@;;*?????????????:::::::::@@;++;+;;;+;++@@@@::;??????S@@,,,,
28. ,,,,,@@@S*********??@@;;?????????????:;;;;;;::@@@@@@@@@@@@@#;@@::::?????*@@,,,,,
29. ,,,@@@**@@@@@@@@@@@@@@@;;+?????????;;;;;;;;;;;;;@@@;;;;;;;;@@@:::::;????@@,,,,,,
30. ,:@@****************??@@@;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@@@S;;;:::::::?@@@::,,,,,
31. +@@@@@@?************?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;@@@@@@@:::::,,
32. @@*****@@@@@@#******?@@@@@@@###########################@@@@@@@@@@######@@@@@::::
33. @*************#@@@@@?@@@#####################@@@@@@@@@@##########@@@@@@@@@@:::::
34. @*******************@@@@@@@@@##########@@@@@@@@@@@@@@@@@@@@@@@########@@@@::::::
35. @*******************?@:::,,,,,,:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,,,,,@::::::
36. @@@@@@@@@@%*********?@@@@@@@;:;,,,?@####@@@@@@@@@@@@@@@@@@@@@@@@#,,:::@@@@::::::
37. @*********#@@@@****???@@###@@@@%:,,@@;:::;S############;:::;?#@,,:;@@@@#@@#:::::
38. @@************#@@#*??#@#######@@@;,,@#########*::;;@@@#######@,,:@@@#####@@#::::
39. ,@@**************@@@?@@########@@:,,@##########;::;;@########@,,;@@#######@@*:::
40. ,,@@***************@@@@########@@:,,@##########,,,,.;########@,,:@@########@@:::
相关文章
|
9天前
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
30 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
2月前
|
IDE Java 开发工具
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
35 0
|
2月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
6天前
|
Java
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
这篇文章介绍了Java中FileInputStream和FileOutputStream的使用,包括如何读取和写入txt文件以及如何拷贝图片文件。
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
|
8天前
|
算法 Java
Java项目不使用框架如何实现限流?
Java项目不使用框架如何实现限流?
19 2
|
10天前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
2月前
|
Java
Java系列之 解决 项目 jar 包无法上传到Github
该博客文章介绍了解决Java项目中jar包无法上传到Github的问题,通过修改`.gitignore`文件来包含jar包,从而成功添加到上传目录。
Java系列之 解决 项目 jar 包无法上传到Github
|
2月前
|
Java
Java系列之 重命名文件/图片,renameTo() 方法的使用
这篇文章介绍了Java中File类的renameTo()方法,包括其使用方式、参数、返回值以及一些使用时的注意事项,并通过示例代码演示了如何使用该方法来重命名文件。
Java系列之 重命名文件/图片,renameTo() 方法的使用
|
1月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
下一篇
无影云桌面