使用skia-python将BiliBili动态渲染为图片
Project description
DynRender-skia
使用skia渲染BiliBili动态 更新页面效果的优先级会很低
注意
Linux用户在导入skia-python包时可能会遇到以下报错
libGL.so.1: cannot open shared object file: No such file or directory
解决方法
ubuntu用户
apt install libgl1-mesa-glx
ArchLinux用户
pacman -S libgl
centos用户
yum install mesa-libGL -y
使用方法
安装必要依赖
pip install dynamicadaptor dynrender-skia
测试
import httpx
import asyncio
import skia
from dynrender.Core import DynRender
from dynamicadaptor.DynamicConversion import formate_message
# 定义异步函数,用于执行Web测试
async def web_test():
dyn_id = "440646043801479846"
url = f"https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?timezone_offset=-480&id={dyn_id}&features=itemOpusStyle"
headers = {
"referer": f"https://t.bilibili.com/{dyn_id}",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
}
# 发起HTTP请求并解析JSON响应
message_json = httpx.get(url, headers=headers).json()
# 格式化消息数据
message_formate = await formate_message("web", message_json["data"]["item"])
# 使用DynRender执行动态渲染
img = await DynRender().run(message_formate)
# 将渲染后的图像转换为Skia Image对象
img = skia.Image.fromarray(img, colorType=skia.ColorType.kRGBA_8888_ColorType)
# 保存图像为PNG文件
img.save("1.png")
# 当文件作为主程序执行时
if __name__ == "__main__":
asyncio.run(web_test())
效果展示
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dynrender_skia_opt-0.3.8.tar.gz
(366.9 kB
view details)
Built Distribution
File details
Details for the file dynrender_skia_opt-0.3.8.tar.gz
.
File metadata
- Download URL: dynrender_skia_opt-0.3.8.tar.gz
- Upload date:
- Size: 366.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.8.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf403100175ba2347d185e1ecb5c4a216cfcc27d4b291e01026851e45535470e |
|
MD5 | c24f36a4656e1ad04c8f12c8da2454e8 |
|
BLAKE2b-256 | fc16204a44b27b293ae6524898ded0500e18df2eee208ea3f956be22bff4d5e6 |
File details
Details for the file dynrender_skia_opt-0.3.8-py3-none-any.whl
.
File metadata
- Download URL: dynrender_skia_opt-0.3.8-py3-none-any.whl
- Upload date:
- Size: 371.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.8.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bb3417b0a504642e36e130fb0e0ed9fc4da6e13ab54adba0da0f46d19422bbf |
|
MD5 | 6b0d4a7794ebfdbc98af55e3b48cc6ad |
|
BLAKE2b-256 | c621d532f470accb898bbd7bc817fd1eec0c057420dae1ca0c0a5cd3bb71c911 |