栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Java代码成精了——会跳萨日朗的火柴人》实现步骤二:处理图片背景颜色

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Java代码成精了——会跳萨日朗的火柴人》实现步骤二:处理图片背景颜色

 在此之前,我们已经实现项目的第一步,就是读取视频文件,获取每一帧对应的图片。本小节要做的就是对这些原图片进行处理。因为我们绘画水平有限,我们希望在原图片的轮廓上进行绘画。但是原图片的颜色不太好,我们希望能够把背景变成白色,小人变成黑色。这样小人的轮廓就很清晰。(当然如果忽略本次操作,直接在原图上进行绘画,也是可以的。)

加芊芊老师vx领取最新资料哦   

一、进制

首先我们要普及一下进制的数据。因为Java程序操作的颜色,往往是10进制的数值。但实际在表示颜色时候,一般会使用16进制的颜色值,或者rgb颜色值来表示。

进制关系

开发中可能会使用到进制
    十进制(Decimal)
    二进制(Binary)
    八进制(Octal,简写OCT)
    十六进制(Hexadecimal,简写HEX)

二、颜色

颜色的表示:红色,绿色,蓝色。

1、RGB(r,g,b)

0-255

rgb(0,0,0)黑色
rgb(255,255,255)白色
rgb(255,0,0)红色
rgb(0,255,0)绿色
rgb(0,0,255)蓝色


2、16进制颜色值

红,绿,蓝
​
#FF0000,红色
#00FF00,绿色
#0000FF,蓝色
#000000,黑色
#ffffff,白色

3、单词

red,红色
green,绿色
blue,蓝色
white,白色
black,黑色
pink,粉色

关于颜色有很多网站可以查看,比如:https://www.sioe.cn/yingyong/yanse-rgb-16/

以下截图展示部分颜色值:


三、代码实现

在上次课创建的项目里,新建一个java文件,命名为:D2_ChangeBack.java

示例代码:

package demo;
​
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
​
import javax.imageio.ImageIO;
​

public class D2_ChangeBack {
​
 public static void main(String[] args) {
  //1.要处理的图片的目录路径
  String dirPath = "C:\Ruby\萨日朗\视频帧";
  //2.处理后的图片,要存储的目录
  String changePath = "C:\Ruby\萨日朗\换色\";
  
  File dir = new File(dirPath);
  //3.获取图片目录下所有的图片文件
  File[] files = dir.listFiles();
  System.out.println(files.length);
  //4.遍历这个文件数组,操作每一张图片
  for(int x = 0;x > 16;// 红色
     rgb[1] = (color & 0xff00) >> 8;// 绿色
     rgb[2] = (color & 0xff);// 蓝
     
     //9.判断颜色值,进行换色:白色,黑色
     if(rgb[0] < 140 && rgb[1] < 130 && rgb[2]<120){
      image.setRGB(i, j, 0x000000);//黑色
     }else{
      image.setRGB(i, j, 0xffffff);//白色
     }
    }
   }
   //10.将换色后的图片数据,保存到目标文件夹里
   File newFile = new File(changePath+files[x].getName());
   System.out.println(newFile.getAbsolutePath());
   try {
    ImageIO.write(image, "jpg", newFile);
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
​
}
​

因为上课需要和学生的操作系统,所以我在自己的mac电脑上安装了windows虚拟机。只有一个C盘。

在本地硬盘上:创建目录结构:C:Ruby萨日朗换色。将程序执行后,该目录下有以下文件:

 文末福利
大家可以加老师vx领取最新资料哦

 别忘了扫码领资料哦,获取【Java高清路线图】和【全套学习视频和配套资料】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号