Skip to main content

使用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

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())

效果展示

示例图片

Project details


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-0.3.0.tar.gz (407.6 kB view details)

Uploaded Source

File details

Details for the file dynrender_skia-0.3.0.tar.gz.

File metadata

  • Download URL: dynrender_skia-0.3.0.tar.gz
  • Upload date:
  • Size: 407.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.13.13 Windows/10

File hashes

Hashes for dynrender_skia-0.3.0.tar.gz
Algorithm Hash digest
SHA256 72bb5a532915fae554c31733dfdf8390ded4af4123ddcbbc72b35d59207ffebb
MD5 1a27ac2739eec08eceff53d6426b5363
BLAKE2b-256 7d2cbca338a0a979b4724847d776d59b03b2bdd08cc4520541435d8806bb776e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page