首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用ffmpeg缩放PNG时保持透明度

如何在使用ffmpeg缩放PNG时保持透明度
EN

Stack Overflow用户
提问于 2020-12-24 14:43:36
回答 1查看 289关注 0票数 0

我正在使用ffmpeg缩放我的PNG图像,我发现缩放后透明度变为白色。我怎样才能保持透明度?谢谢

代码语言:javascript
复制
ffmpeg -i background_image.png -vf scale=1080:1920 output.png
ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, png_pipe, from 'background_image.png':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: png, pal8(pc), 1440x2560, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> png (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'output.png':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: png, pal8, 1080x1920, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.91.100 png
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.113x    
video:669kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

My Sample PNG file

我不知道为什么我的透明的PNG文件在上传到stackoverflow后会转换成白色的jpg格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-25 05:51:52

使用rgba作为像素格式(-pix_fmt)。在您的命令中,应该是:

代码语言:javascript
复制
ffmpeg -i background_image.png -pix_fmt rgba -vf scale=1080:1920 output.png

This ticket提到了一个类似的问题,所以我尝试了那个票据的the sample image,它和你的一样也是一个pal8 PNG,并得到了以下结果:

如果不使用-pix_fmt rgba,则输出文件的背景为白色:

代码语言:javascript
复制
ffmpeg -i pal8_alpha.png -vf scale=1080:1920 output.png

使用-pix_fmt rgba时,背景是透明的:

代码语言:javascript
复制
ffmpeg -i pal8_alpha.png -pix_fmt rgba -vf scale=1080:1920 output.png
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65434905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档