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. ,,@@***************@@@@########@@:,,@##########,,,,.;########@,,:@@########@@:::
相关文章
|
2月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
92 4
|
2月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
68 2
|
10天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
70 26
|
22天前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
36 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
21天前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
1月前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
39 4
|
1月前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
44 3
|
1月前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
51 1
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
392 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
2月前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
55 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解