自制随机图片API

wordpress 9个月前 Jeben
184 0

背景

网站使用的是Sakura主题,主题设置里可以设置图片显示;设置界面如下:

自制随机图片API

1. Webp优化随机图:指的是采用Webp格式的图片,这里可以通过CDN自动转换或者在主题本地将图片转化成Webp格式,可以加快网页打开速度。
2. 内置原图随机图:使用的是主题内上传的图片展示;文件位置在\Sakura\manifest;
3. 外部随机图API:可以使用别人封装好的美图API,推荐一个:https://api.sunweihu.com/api/bing1/api.php
这里将介绍的是使用自己的随机图API,这样可以随时添加自己的图片展示。

方法

挑选图片

自制随机图片API

上传图片到CDN,这里以github为例;

改变图片的比例,用opencv调整分辨率,同时想要加快访问也可以压缩图片,也可以用无损压缩,相当于没变。
将图片放在了本地git目录下,同时输出访问链接到 img.txt 中:

import os
import cv2
# 本地文件位置链接github
file_path = "D:\Git\git_res\CDN\images\\"
web_path = "https://cdn.jsdelivr.net/gh/SukiEva/CDN/images/"
def img_resize(image_path):
    image = cv2.imread(file_path+image_path)
    height, width = image.shape[0], image.shape[1]
    # 设置新的图片分辨率框架
    width_new = 1920
    height_new = 1080
    # 判断图片的长宽比率
    if width / height >= width_new / height_new:
       img = cv2.resize(image, (width_new, int(height * width_new / width)))
    else:
       img = cv2.resize(image, (int(width * height_new / height), height_new))
    if ".jpg" in image_path:
        cv2.imwrite(file_path+image_path, img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    elif ".png" in image_path:
        cv2.imwrite(file_path+image_path, img, [cv2.IMWRITE_PNG_COMPRESSION, 0])
if __name__ == '__main__':
    filelist = os.listdir(file_path) 
    with open('E:\桌面\img.txt','w') as f:
        for file in filelist:
            img_resize(file)
            f.write(web_path+file+'\n')

这里跑完代码将git同步到github中,同时桌面上的img.txt中也有了我们需要的图片链接。

由于本人还未熟悉Github命令行操作,所以我利用picgo上传图片到Github,然后在> img.txt文件里手动将图片链接写入。

图片示例如下:

自制随机图片API

写一个读取链接并重定向的'random.php'文件

$pic]));

default:
    die(header("Location: $pic"));
}
?>

将'img.txt'和'random.php'两个文件上传到网站目录下

访问域名/random.php

设置成功的话,访问上面地址,就可以看到图片了。
然后就可以将这个API地址填入这是到网站后台设置里。
大家可以使用我的API:https://ardye.com/random.php
如果喜欢的话,欢迎添加友链。

版权声明:Jeben 发表于 2020-11-11 20:51:04。
转载请注明:自制随机图片API | 阿呆导航

暂无评论

暂无评论...