Skip to main content

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)

Source distribution for dynrender_skia 0.3.1
File Size Uploaded
dynrender_skia-0.3.1.tar.gz 407.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dynrender_skia 0.3.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

1 release file

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page