DynRender-skia
使用skia渲染BiliBili动态 更新页面效果的优先级会很低
注意
Linux用户在导入skia-python包时可能会遇到以下报错
libGL.so.1: cannot open shared object file: No such file or directory
Windows用户在缺少Microsoft Visual C++ Runtime时可能会遇到以下报错
ImportError: DLL load failed while importing skia: The specified module could not be found.
解决方法
ubuntu用户
apt install libgl1-mesa-glx
ArchLinux用户
pacman -S libgl
centos用户
yum install mesa-libGL -y
Windows用户
下载链接Microsoft Visual C++ 2015 Redistributable Update 3 RC
使用方法
安装必要依赖
pip install dynamicadaptor dynrender-skia
测试
import httpx
import asyncio
import skia
from dynrender_skia.Core import DynRender
from dynamicadaptor.DynamicConversion import formate_message
# 现在风控升级,大概率请求失败,建议携带cookie进行请求
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())
效果展示
|
示例图片
|
|---|
Metadata
Release files for dynrender_skia 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dynrender_skia-0.3.1.tar.gz | 407.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynrender_skia-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 799.2 kB
Release files / dynrender_skia-0.3.1.tar.gz
| Download URL | dynrender_skia-0.3.1.tar.gz |
|---|---|
| Size | 407.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42be1ea03cb0dde0f3fb5072b5a20b03c3a10c5e499be46838e221ac9abc6374
|
|
BLAKE2b-256 checksum How to use checksums |
48f5300ac67444cab9b67b46ebf8ff87efac2e9e4c7b14be2b645cc229baa576
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.28.0 CPython/3.13.2 Linux/7.0.0-28-generic
|
Release files / dynrender_skia-0.3.1-py3-none-any.whl
| Download URL | dynrender_skia-0.3.1-py3-none-any.whl |
|---|---|
| Size | 391.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d8addb62f298cc0564dac1c514c9692b9bc79f86ae2ca7c4b582b9d30d1f50c
|
|
BLAKE2b-256 checksum How to use checksums |
ac2e894c822a5aee64a48c30049fcb14747a9d0a5740ab84bfeaa86cdbfc2be5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.28.0 CPython/3.13.2 Linux/7.0.0-28-generic
|