用字符输出足球的图案

  • 前言
  • 功能描述
  • 实现思路
  • 代码实现
    • 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);}}

结果测试


我们可以将内容拷贝到记事本中,就可以看得清楚一点了

读取图片输出字符图案:用字符输出足球的图案相关推荐

  1. Halcon读取图片

    1.读取图片:1)read image(输出参数,输入参数)->文件对象,文件名/文件地址. 2.读取多张图片:方法1:声明一个放文件地址的数组,并初始化,for循环遍历(文件路径). 方法2: ...

  2. c语言输出指定个数的字符,读取指定个数的字符,依照要求输出。当指定数目≥32时,出错...

    读取指定个数的字符,按照要求输出.当指定数目≥32时,出错. 代码如下: /************************************************************** ...

  3. IO流:输入字节流:InputStream 、 输出字节流:OutputStream 、输入字符流:Reader 、输出字符流:Writer、 BufferedInputStream

    ## 1_ IO流的介绍及其分类          * IO流:          *         I: Input 输入          *         O: Output 输出      ...

  4. php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程

    代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径, 费了点时间才搞定,原来是我的 网上查了下,有这样一说:如果php以图片,zip,exe等文件输出到浏览器,而前 ...

  5. LC-3指令集 字符的输入与输出

    LC-3是一个简单的指令集,字符的输入输出,也比较简单,即通过中断的方式,键盘输入产生中断,有一些标志位,标志着键盘是否可用,显示器是否可用,下面介绍LC-3中的输入输出 目录 4个寄存器 字符的输入 ...

  6. c程序设计语言中printf,编程序 用getchar函数读入两个字符c1和c2,然后分别用putchar和printf函数输出这两个字符。请问...

    编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar和printf函数输出这两个字符.请问: 1. 变量C1,C2应定义为字符型或整型?或二者皆可? 答:在这个题目里,变量C ...

  7. C语言实现:输入一串字符把里面的A、a字符替换成C输出

    C语言实现:输入一串字符把里面的A.a字符替换成C输出 #include "stdafx.h" #include<stdio.h> #include<string ...

  8. 在屏幕上输出你好的python语句是_编程实现:在屏幕上输出中文字符“你好,世界”。(输出结果中不带双引号)_学小易找答案...

    [填空题]借战死者诉说战争灾难的汉乐府诗是( ). [判断题]15 的倍数有 15 . 30 . 45 . ( ) [填空题]表现贫民意欲反抗的汉乐府诗是( ). [判断题]不可以在同一台计算机上安装 ...

  9. C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符

    编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符.思考以下问题: (1)变量cl和c2应定义为字符型,整型还是二者皆可? (2)要求输 ...

最新文章

  1. 使用神经网络提取PDF表格工具来了,支持图片,关键是能白嫖谷歌GPU资源
  2. oracle locked time,Oracle里面的用户smsdb无法登录 LOCKED(TIMED)
  3. 【Linux】一步一步学Linux——mktemp命令(263)
  4. ASP.NET 5 WebApi 返回 HttpResponseMessage
  5. 【OSG】安装编译小结
  6. Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
  7. ZStack实践汇 | ZStack平台的使用心得
  8. 指纹识别传感器技术演变历程
  9. 智安网络丨漫画人工智能:人工智能简史
  10. Mac M1 + Vmware Fusion 安装 Windows 11 arm版及相关问题解决
  11. “土地信息+”能否激发千亿大数据应用市场
  12. 最近迅雷 4.0正式发布!教你轻松精简你的迅雷4.0~
  13. SpringMVC(一)视图解析器
  14. 看了这个你的下载速度还会慢???
  15. Oracle EBS教学视频
  16. JIRA使用方法,简易图解
  17. Smurf攻击的原理
  18. Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史
  19. 拼团小程序、优惠券小程序、点餐外卖小程序搭建(外卖cps)
  20. 如何解决Blender装配中常见问题,修复角色的绑定问题?

热门文章

  1. STM32 时钟与外设总线
  2. 高德纳谈计算机程序设计艺术(上)
  3. 【HDOJ】1032 The 3n + 1 problem_天涯浪子_新浪博客
  4. 简单的3D协作工具,Horizon Worlds也能用来开发VR游戏?
  5. html文本如何添加空白页,WPS文档页面中怎么添加空白页?
  6. ubuntu 14.04.6(64bit) 安装DPDK19.11.1LTS和 PKTGEN(非模块)
  7. 医院室内导航导诊系统的必要性—医院室内导航系统—智慧医院
  8. 升级Openssl 1.1.1版本以及更新Nginx应用新版Openssl
  9. GBase 8c V3.0.0数据类型——HLL函数和操作符(聚合函数)
  10. 行业案例|打造智慧银行家,提升业务团队精益化经营管理水平