读取图片输出字符图案:用字符输出足球的图案
用字符输出足球的图案
- 前言
- 功能描述
- 实现思路
- 代码实现
- 1️⃣ 获取像素点的RGB数值
- 2️⃣ 判断每个像素点的RGB值是否符合
- 3️⃣ main方法
- 结果测试
前言
世界杯,如火如荼的进行着,作为程序员也参加一下活动,蹭一下世界杯的热度
功能描述
通过读取足球图案,在控制台使用字符输出同样的足球图案轮廓,当然我选择了色彩尽可能单一的图案,这样就不需要太多的判断,又能说明白主要的代码逻辑
足球图案:
实现思路
1、获取图案每个像素点的RGB数值
2、当RGB数值符合图案中足球轮廓的颜色时,输出1
,不符合的输出0
,这样足球的轮廓的位置都会填上1
,从而现实出足球的轮廓
代码实现
1️⃣ 获取像素点的RGB数值
使用
java.awt.Color
类中的getRGB
方法,可以得到像素点的RGB数值
private static void printFootballChars(BufferedImage b){int width = b.getWidth();int height =b.getHeight();for (int y = 0; y < height; y++) {System.out.println();//每读取一行之后,进行换行for (int x = 0; x < width; x++) {Color color = new Color(b.getRGB(x,y));int red = color.getRed();int blue = color.getBlue();int green = color.getGreen();//判断是否需要输出1if(isPoint(red,blue,green)){System.out.print("1");} else {System.out.print("0");}}}}
2️⃣ 判断每个像素点的RGB值是否符合
由于我选择的图案色彩比较单一,所以验证像素点是否符合的条件也就比较简单
1、当RGB三个数值,都大于200时,我们认为是白色
2、当red、green、blue三个颜色互相的差值小于10时,我们认为是黑白灰,也就是图案中足球的轮廓颜色
private static boolean isPoint(int red,int blue,int green){if(red > 200 && blue > 200 && green > 200){return false;}return Math.abs(red - blue) < 10 && Math.abs(red - green) <10 && Math.abs(blue - green) <10;}
3️⃣ main方法
public static void main(String[] args) {try{BufferedImage bufferedImage = ImageIO.read(new File("C:\\Users\\cjyou\\Desktop\\68c9ea2cffc9d1c84e6f5971078d6b8a.jpeg"));printFootballChars(bufferedImage);}catch(Exception e){System.out.println(e);}}
结果测试
我们可以将内容拷贝到记事本中,就可以看得清楚一点了
读取图片输出字符图案:用字符输出足球的图案相关推荐
- Halcon读取图片
1.读取图片:1)read image(输出参数,输入参数)->文件对象,文件名/文件地址. 2.读取多张图片:方法1:声明一个放文件地址的数组,并初始化,for循环遍历(文件路径). 方法2: ...
- c语言输出指定个数的字符,读取指定个数的字符,依照要求输出。当指定数目≥32时,出错...
读取指定个数的字符,按照要求输出.当指定数目≥32时,出错. 代码如下: /************************************************************** ...
- IO流:输入字节流:InputStream 、 输出字节流:OutputStream 、输入字符流:Reader 、输出字符流:Writer、 BufferedInputStream
## 1_ IO流的介绍及其分类 * IO流: * I: Input 输入 * O: Output 输出 ...
- php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程
代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径, 费了点时间才搞定,原来是我的 网上查了下,有这样一说:如果php以图片,zip,exe等文件输出到浏览器,而前 ...
- LC-3指令集 字符的输入与输出
LC-3是一个简单的指令集,字符的输入输出,也比较简单,即通过中断的方式,键盘输入产生中断,有一些标志位,标志着键盘是否可用,显示器是否可用,下面介绍LC-3中的输入输出 目录 4个寄存器 字符的输入 ...
- c程序设计语言中printf,编程序 用getchar函数读入两个字符c1和c2,然后分别用putchar和printf函数输出这两个字符。请问...
编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar和printf函数输出这两个字符.请问: 1. 变量C1,C2应定义为字符型或整型?或二者皆可? 答:在这个题目里,变量C ...
- C语言实现:输入一串字符把里面的A、a字符替换成C输出
C语言实现:输入一串字符把里面的A.a字符替换成C输出 #include "stdafx.h" #include<stdio.h> #include<string ...
- 在屏幕上输出你好的python语句是_编程实现:在屏幕上输出中文字符“你好,世界”。(输出结果中不带双引号)_学小易找答案...
[填空题]借战死者诉说战争灾难的汉乐府诗是( ). [判断题]15 的倍数有 15 . 30 . 45 . ( ) [填空题]表现贫民意欲反抗的汉乐府诗是( ). [判断题]不可以在同一台计算机上安装 ...
- C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符
编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符.思考以下问题: (1)变量cl和c2应定义为字符型,整型还是二者皆可? (2)要求输 ...
最新文章
- 使用神经网络提取PDF表格工具来了,支持图片,关键是能白嫖谷歌GPU资源
- oracle locked time,Oracle里面的用户smsdb无法登录 LOCKED(TIMED)
- 【Linux】一步一步学Linux——mktemp命令(263)
- ASP.NET 5 WebApi 返回 HttpResponseMessage
- 【OSG】安装编译小结
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
- ZStack实践汇 | ZStack平台的使用心得
- 指纹识别传感器技术演变历程
- 智安网络丨漫画人工智能:人工智能简史
- Mac M1 + Vmware Fusion 安装 Windows 11 arm版及相关问题解决
- “土地信息+”能否激发千亿大数据应用市场
- 最近迅雷 4.0正式发布!教你轻松精简你的迅雷4.0~
- SpringMVC(一)视图解析器
- 看了这个你的下载速度还会慢???
- Oracle EBS教学视频
- JIRA使用方法,简易图解
- Smurf攻击的原理
- Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史
- 拼团小程序、优惠券小程序、点餐外卖小程序搭建(外卖cps)
- 如何解决Blender装配中常见问题,修复角色的绑定问题?
热门文章
- STM32 时钟与外设总线
- 高德纳谈计算机程序设计艺术(上)
- 【HDOJ】1032 The 3n + 1 problem_天涯浪子_新浪博客
- 简单的3D协作工具,Horizon Worlds也能用来开发VR游戏?
- html文本如何添加空白页,WPS文档页面中怎么添加空白页?
- ubuntu 14.04.6(64bit) 安装DPDK19.11.1LTS和 PKTGEN(非模块)
- 医院室内导航导诊系统的必要性—医院室内导航系统—智慧医院
- 升级Openssl 1.1.1版本以及更新Nginx应用新版Openssl
- GBase 8c V3.0.0数据类型——HLL函数和操作符(聚合函数)
- 行业案例|打造智慧银行家,提升业务团队精益化经营管理水平