0

我正在使用 sws_scale 将图像和视频从每种格式转换为 RGBA,使用由此创建的 SWSContext:

auto context = sws_getContext(width, height, pix_fmt, width, height, AV_PIX_FMT_RGBA,
                              SWS_BICUBIC, nullptr, nullptr, nullptr);

但是当使用颜色类型为 Palette (pix_fmt = AV_PIX_FMT_PAL8) 的 PNG 时,sws_scale 似乎没有考虑到透明颜色,并且生成的 RGBA 栅格不透明。这是 sws_scale 的错误,还是我对结果做了一些假设?

调色板图片: https ://drive.google.com/file/d/1CIPkYeHelNSsH2TAGMmr0kfHxOkYiZTK/view?usp=sharing

RGBA 图片: https ://drive.google.com/open?id=1GMlC7RxJGLy9lpyKLg2RWfup1nJh-JFc

4

1 回答 1

0

我做了一个错误的假设 - sws_scale 不承诺返回预乘 alpha 颜色,所以我得到的值是 r:255,g:255,b:255,a:0。

于 2020-05-18T14:02:54.953 回答