petpet
petpet copied to clipboard
[建议]关于获取动态头像与动图透明背景的建议
希望可以支持获取动态头像,动态图生成可以兼容透明背景
Plugin
获取动态头像: Mirai未提供正确的头像URL
https://github.com/mamoe/mirai/issues/1557
Core
GIF支持透明色: 暂未找到合适的实现方式
- GIF使用 索引颜色 不支持 alpha颜色通道, 通过索引表示完全透明的颜色, 调色板最大为256色
- 将合成后的位图转换为 索引颜色
BufferedImage.TYPE_3BYTE_BGR
后会丢失原有的alpha通道 - 为保证转换后带有alpha通道的颜色准确显示, 在转换前的图片底部绘制白色背景
#fff
举例说明:
- 带有alpha颜色通道的像素显示的实际颜色与图像查看程序的背景颜色有关
- 丢弃alpha通道会导致「原本半透明的像素变得不透明」
- 如果仅将
alpha > 0
的像素底部绘制#fff
背景色, 会导致「在背景色为#000
的图像查看程序下, 低不透明度与0不透明度像素颜色相差过大」
Try v6.0
新增 自动获取正确分辨率的头像
https://github.com/Dituon/petpet/releases/tag/6.0
下个版本会引入Rust构建的渲染核心,支持处理带有alpha通道的调色板,可以构建透明背景的GIF。
https://github.com/Dituon/petpet-rs