您的位置:首页 > 娱乐 > 明星 > 上海设计工作室排名_七牛云对象存储_站长之家站长工具综合查询_百度seo教程

上海设计工作室排名_七牛云对象存储_站长之家站长工具综合查询_百度seo教程

2024/10/14 4:21:36 来源:https://blog.csdn.net/qq_34272964/article/details/142796036  浏览:    关键词:上海设计工作室排名_七牛云对象存储_站长之家站长工具综合查询_百度seo教程
上海设计工作室排名_七牛云对象存储_站长之家站长工具综合查询_百度seo教程

引言

FFmpeg 是一个功能强大的多媒体处理工具,广泛应用于音视频处理领域。然而,它的图片处理能力同样不容忽视。本文将深入探讨 FFmpeg 在图片处理方面的高级技巧和优化方法,帮助您更高效地完成图片处理任务。

一、图片格式转换

1.1 基础转换

1.1.1 JPG 转 PNG

ffmpeg -i input.jpg output.png

1.1.2 PNG 转 JPG 

ffmpeg -i input.png output.jpg

1.1.3 BMP 转 WEBP 

ffmpeg -i input.bmp output.webp

1.2 批量转换

1.2.1 批量转换 JPG 到 PNG

# 创建一个 Bash 脚本
#!/bin/bash
for file in *.jpg; doffmpeg -i "$file" "${file%.jpg}.png"
done

1.2.2 批量转换 PNG 到 JPG 

# 创建一个 Bash 脚本
#!/bin/bash
for file in *.png; doffmpeg -i "$file" "${file%.png}.jpg"
done

二、调整图片质量

2.1 基础转换

2.1.1 设置 JPG 质量

ffmpeg -i input.png -q:v 2 output.jpg
  •  -q:v 参数用于设置 质量等级,范围是 1(最差)到 31(最好)。  

2.1.2 设置 PNG 压缩级别

ffmpeg -i input.jpg -compression_level 9 output.png
  • -compression_level 参数用于设置 PNG 压缩级别,范围是 0(最快)到 9(最慢),默认值是 6。 

三、图片合成和修改

3.1 添加水印

3.1.1 文字水印

ffmpeg -i input.jpg -vf "drawtext=fontfile=font.ttf: text='Watermark': x=50: y=50: fontcolor=white: fontsize=24" output.jpg
  • fontfile=font.ttf: 指定字体文件的位置,font.ttf 是字体文件的名字,需要确保 ffmpeg 能够访问到这个文件。
  • text='Watermark': 设置要在图片上显示的文本内容,这里是 “Watermark”。
  • x=50: y=50: 设置文本在图片上的位置,x 和 y 分别表示从图片左上角开始的水平和垂直偏移量,单位是像素。
  • fontcolor=white: 设置文本的颜色,这里是白色。
  • fontsize=24: 设置文本的字体大小,这里是 24 像素。

3.1.2 图片水印

ffmpeg -i input.jpg -i watermark.png -filter_complex "overlay=W-w-10:H-h-10" output.jpg
  • overlay:叠加滤镜
  • W-w-10 和 H-h-10:水印位置,分别表示距离右侧和底部 10 像素

3.2 裁剪和缩放

3.2.1 裁剪图片

ffmpeg -i input.jpg -vf "crop=640:320:0:0" output.jpg
  • crop:裁剪滤镜
  • 640:320:0:0:裁剪区域的宽度、高度、左上角 x 坐标和 y 坐标 

3.2.2 缩放图片

ffmpeg -i input.jpg -vf "scale=640:320" output.jpg
  • scale:缩放滤镜
  • 64:320:目标宽度和高度 

3.3.3 缩放缩放

ffmpeg -i input.jpg -vf "scale=192:-1" output.jpg
ffmpeg -i input.jpg -vf "scale=-1:108" output.jpg
ffmpeg -i input.jpg -vf "scale=-192:108" output.jpg
  • scale=192:-1:固定宽度为 192 像素,高度自动计算以保持宽高比。
  • scale=-1:108:固定高度为 108 像素,宽度自动计算以保持宽高比。
  • scale=-192:108:固定宽度为 192 像素,高度为 108 像素(负值会被视为正值)。

3.3.4 旋转图片

ffmpeg -i input.jpg -vf "transpose=1" output.jpg
  • transpose=0:垂直翻转
  • transpose=1:顺时针旋转 90 度
  • transpose=2:逆时针旋转 90 度
  • transpose=3:水平翻转 

3.3 合并多张图片

3.3.1 水平拼接

ffmpeg -i 001.jpg -i 002.jpg -filter_complex hstack output.jpg
  • -filter_complex hstack:将两张图片水平堆叠在一起。 

3.3.2 垂直拼接

ffmpeg -i 001.jpg -i 002.jpg -filter_complex vstack output.jpg
  • -filter_complex vstack:将两张图片水平堆叠在一起。 

3.3.3 N张图片水平拼接

ffmpeg -i 001.jpg -i 002.jpg -i 003.jpg -filter_complex "[0:v][1:v][2:v]hstack=inputs=3" output.jpg
  •  -filter_complex "[0:v][1:v][2:v]hstack=inputs=3":将三张图片水平堆叠在一起。
    • [0:v]:指代第一个输入文件的视频流(即 001.jpg)。
    • [1:v]:指代第二个输入文件的视频流(即 002.jpg)。
    • [2:v]:指代第三个输入文件的视频流(即 003.jpg)。
    • hstack=inputs=3:水平堆叠滤镜,将三个图像并排显示。
    • inputs=3:指定输入的数量为 3。

3.3.4 N张图片垂直拼接

ffmpeg -i 001.jpg -i 002.jpg -i 003.jpg -filter_complex "[0:v][1:v][2:v]vstack=inputs=3" output.jpg
  •  -filter_complex "[0:v][1:v][2:v]hstack=inputs=3":将三张图片垂直堆叠在一起。
    • [0:v]:指代第一个输入文件的视频流(即 001.jpg)。
    • [1:v]:指代第二个输入文件的视频流(即 002.jpg)。
    • [2:v]:指代第三个输入文件的视频流(即 003.jpg)。
    • hstack=inputs=3:垂直堆叠滤镜,将三个图像并排显示。
    • inputs=3:指定输入的数量为 3。

总结

通过本文,我们详细介绍了如何使用 FFmpeg 进行图片格式转换、编辑、合成。FFmpeg 的强大功能和灵活性使其成为处理多媒体数据的理想工具。希望这些知识能帮助你在图片处理方面更加得心应手。如果你有任何疑问或想要了解更多进阶技巧,欢迎留言交流!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com