Galgame 随机 CG 图 API

调用方式

  • Method: GET
  • Endpoint: https://api.illlights.com/v1/img

将客户端 302 重定向到 https://api.illlights.com/v1/imgs/{file_name},直接从服务器下载图片。

  • Method: GET
  • Endpoint: https://api.illlights.com/v1/img/info

获取 JSON 格式的随机图数据库统计信息。返回示例详见 Galgame CG Database 内容列表查询 API

返回内容

绝大部分是解包得到的图片,因为流量和传输速度问题,所有图片都经过压缩,使用 ImageMagick 压缩图片,默认参数下返回 avif 格式图片。

尺寸方面,各个公司制作的分辨率和格式不同,返回图片的分辨率不一样,你可以通过指定原图分辨率参数获取特定分辨率的图片。

图片内容不含 18+ 内容,可能有一部分图片有 16+ 内容,建议不要在非常正式的网站和应用中使用。

所有图片都是我一张一张挑选选出,只放我玩过的、且我觉得画风很好的图片,只对我自己的取向负责,正在随着我玩过的 Galgame 增长。不过也就是说每张图的质量都不低!

图片数据库详细细节请在这里查看

示例

直接嵌入HTML中,由浏览器调用渲染

<img src="https://api.illlights.com/v1/img" alt="示例图片">

API 调用示例

以下网站可以作为使用随机图 API 的使用参考:

可选参数

原图分辨率

  • Parameter: size
  • Available Options: 540 720 1080 1440 2160
  • Example: https://api.illlights.com/v1/img?size=540

指定原图分辨率,就是从数据库中搜索出指定的分辨率图片再随机给客户端。

注意!该参数不是把原图调成该分辨率再返回,而是在数据库中查找原图分辨率是这一尺寸的图片,所以指定原图分辨率会使随机的范围大幅减小.

部分作品的图片只有一种分辨率,指定原图分辨率会导致无法随机到一些作品,若同时执行其他请求参数导致数据库中无结果,返回 404。

只有上述五种可选的原图分辨率参数,错误的查询会返回 403。

最小原图分辨率

  • Parameter: minsize
  • Available Options: 720 1080 1440 2160
  • Example: https://api.illlights.com/v1/img?minsize=1080

从数据库中搜索出大于指定的分辨率图片再随机给客户端。

使用最小原图分辨率,例如填入minsize=1080,能得到大于等于 1080p 的图片。

当同时指定原图分辨率时,该参数无效。其他细节和原图分辨率一致。

来源作品

  • Parameter: name
  • Available Options: refer to Galgame CG 数据库 for detaied information
  • Example: https://api.illlights.com/v1/img?name=千恋

根据数据库中 Name 字段匹配筛选图片并随机返回其中一条。不区分大小写,使用匹配形式查找:只要这张图片的 Name 字段中有你搜索的这段字符就可能被随机到。例如 Example 中的请求会随机返回一张 千恋*万花的 CG 图片。

数据库中 Name 至少会有官方的作品名称,一些作品的官方名称是英文,但更多的是日语,后续会扩充数据库内容加入更多的名称。详细图片作品介绍见Galgame CG 数据库

没有查找到图片会返回 404。

最小亮度

  • Parameter: minbrightness
  • Available Options: 0-1.0
  • Example: https://api.illlights.com/v1/img?minbrightness=0.5

在写入数据库时,程序计算了图片的平均亮度,亮度计算使用加权平均的“感知亮度”(Luminance)。其计算公式为:

Y=0.299×R+0.587×G+0.114×B

最大亮度共同使用,常用于背景图片亮色模式和暗色模式的区分。亮色模式的推荐亮度为 minbrightness=0.5

如果输入的数据无法转换成浮点数,返回400错误。

如果输入的数据超过范围,仍然会进行查询,但是查询不到图片,返回404错误。详细的亮度统计数据请在数据库简介中查看。

最大亮度

  • Parameter: maxbrightness
  • Available Options: 0-1.0
  • Example: https://api.illlights.com/v1/img?maxbrightness=0.5

最小亮度类似,指定图片的亮度范围。

暗色模式的推荐亮度为 maxbrightness=0.6

视图模式

  • Parameter: view
  • Available Options: vertical horizontal any
  • Example: https://api.illlights.com/v1/img?view=vertical

因为 galgame 只有横屏的 CG,竖屏实在不好用,所以我手动一张一张截取出 4:3 的画面(这项工作正在进行,已经至少完成了 500 张图片的手动截取),可以使用 view=vertical 参数获取截取后的图片。

默认不会使用截取后的图片(即默认参数为 horizontal)。

使用技巧

参数的混合使用

您可以使用 & 连接多个查询参数。使用时请先查询是否有对应的内容,过多的参数容易导致随机范围缩小甚至 404 错误。

  • Example: https://api.illlights.com/v1/img?err_only=true&name=ATRI&minsize=720

单网页多请求

在同一个 HTML 界面使用同样的 Endpoint 会导致浏览器只发送一次请求,整个网页中得到的图片都是同一个。可以通过在后面增加随机/定制的无效参数来要求浏览器发送多个请求。

<img src="https://api.illlights.com/v1/img?1314&name=ATRI" alt="示例图片1">
<img src="https://api.illlights.com/v1/img?9988&name=ATRI" alt="示例图片2">
<img src="https://api.illlights.com/v1/img?3141&name=ATRI" alt="示例图片3">