Java教程——美颜相机

基本介绍

      美颜相机在生活中的应用十分广泛 它可以实现15种图片的滤镜操作 实现图片的格式化操作 实现图片的文件读写操作 实现视频拍照 视频处理,让我们用Java来模拟一个美颜相机 对图片进行读取 调整像素值 改变颜色分布 

先来了解我们日常生活中的屏幕:

  • 分辨率: 1980*1080 一块屏幕上 横向分布着1980颗像素灯珠 纵向分布着1080颗像素灯珠
  • 像素: RGB (为十六进制)每个色值有256阶变化 (从0到255)    共有 256256256 = 16777216 种  每一个颜色都是用一个整数表示
    • RGB例子
      具体 —Red Green Blue
      白色: 255 255 255
      黑色: 0 0 0
      红色: 255 0 0
      黄色: 0 255 255
  • Graphics 可以根据存储的整数 在屏幕上显示对应的颜色

对鼠标的监听  MouseListener

使用方式: 1: 创建一个新的类 ImageListener 实现 MouseListener

                   2: 将这五个方法复制到新的类中

                   3: 使用这个类创建一个对象 加载到窗体对象上

加载图片:

  • File 类 : 加载图片路径
  • ImageIO类: 读取图片数据
  • BufferedImage :存储图片数据
    • 获取图片的宽高
    • 根据坐标获取像素值

开发步骤

  • 创建一个窗体
  • 获取窗体的画笔 Graphics GPU CPU
    • 需要在可视化之后再获取窗体的Graphics
      • Graphics g = jf.getGraphics();
    • 需要在鼠标操作之后绘制
  • 鼠标监听器 :监听鼠标在窗体上的操作 按下 松开 点击 进入 离开
    • MouseListener
  • 获取鼠标操作时的数据 : 鼠标的坐标 鼠标的点击次数 鼠标的按键
    • MouseEvent 鼠标事件参数 可以获取鼠标的数据
  • 可尝试绘制一个像素点:
    • 注意:像素点要在鼠标操作“按下”的{  }内书写,否则无效
    • new color括号里的数值可随意赋值,在0~255之间

模拟照片:

引入random 对象后,可引入gray变量,书写if else语句,运行结果为形似二维码的图片

模拟图片中

第三句语句可将像素值放大十倍

代码运行过程:

其中g2在另一窗体中有备注:

g=g2=graphics指代同一对象

代码运行

读取图片的代码运行:

1.创建 iamgeUI 窗体,获取graphics,创建鼠标监听对象

2.在ImageListener中读取图片并呈现像素值(像素值可做修改:即第50-52行,可将1 替换为其它值)

注意:第50到52行为颜色绘制,不可遗漏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值