《Java代码成精了——会跳萨日朗的火柴人》实现步骤一:读取视频文件获取每一帧图片

上次课,我们说明了《会跳萨日朗的火柴人》的思路,本小节我们实现第一步。就是读取视频文件,获取每一帧对应的图片。

 

1、准备工作

学习本篇文章,需要你事先已经掌握Java基础知识,比如变量、数据类型、方法、异常、IO操作等。

FFMpegFrameGrabber

在java中的视频操作,我们采用第三方的包。javacv是视觉领域常用的库。在javacv封装的ffmpeg包中,可以通过FFMpegFrameGrabber捕获image数据和sample数据,而且捕获的都是译码后的。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

FFmpeg "这个单词中的 "FF" 指的是 "Fast Forward ff + mpeg

MPEG(Moving Picture Experts Group,动态图像专家组)

BufferedImage

Image是一个抽象类,BufferedImage是其实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。 图片只有加载到内存中才能进行进一步的处理。

ImageIO

提供read()和write()静态方法,读写图片,比以往的InputStream读写更方便。

读取:

public static BufferedImage read(File input)
public static BufferedImage read(InputStream input)
public static BufferedImage read(ImageInputStream stream)
public static BufferedImage read(URL input)
​

写出:

RenderedImage接口的子类是BufferedImage,因此在这里可以直接出传入BufferedImage的实例化对象,将Buffe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值