网站LOGO
六月是只猫 - 互联网技术分享指南
页面加载中
5月3日
网站LOGO 六月是只猫 - 互联网技术分享指南
生活,一半家长里短,一半山川湖海...
菜单
  • 六月是只猫 - 互联网技术分享指南
    生活,一半家长里短,一半山川湖海...
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    自建随机图片API 接口
    点击复制本页信息
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。
    www.lyszm.com

    自建随机图片API 接口

    六月是只猫 · 原创 ·
    技术分享互联网 · 实用教程福利
    共 2514 字 · 约 2 分钟 · 1638
    本文最后更新于2024年01月08日,已经过了116天没有更新,若内容或图片失效,请留言反馈

    1.前言

    网上其实可以搜到很多关于随机图片的Api,但是很多已经年代久远、速度缓慢,或者是分类不全不太符合口味,所以选择自建一个,图片都是自己挑选的,不喜欢也可以更换,方便维护。

    有能网络条件的可以直接使用Github完成搭建,完全免费。

    2.实现步骤

    ①建立图片API,首先就得有图片,数量风格都可以自选,在这里推荐几个免费的图库——
    wallhaven.ccPixbayPexels

    ②把图片保持到本地后,文件名大多都是乱的,最好统一一下名称,排个序号,方便日后删除更换,在这里建议把图片格式转为webp形式,可以有效提升加载时间。这边不建议使用太大的图片,因为在读取的时候会加载图片,一般图片10M左右已经要加载很久,所以我们需要压缩图片。可以选择TinyPNG实现,非会员支持最大5M和20张的图片处理,可以有效压缩图片大小且不会产出肉眼可见的影响。

    ③接着可以把图片上传到云存储或者网站空间,比如Github、Gitee和各大云厂商。
    2023-12-24T21:07:30.png2023-12-24T21:07:30.png
    2023-12-24T21:07:41.png2023-12-24T21:07:41.png

    3.以 1.webp 图片为例

    最终地址为(地址仅做为范例参考):

    TXT 代码:
    
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/1.webp
    

    ④以此类推,获取剩下图片的URl,然后保存到TXT文本里:

    TXT 代码:
    
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/1.webp
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/2.webp
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/3.webp
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/4.webp
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/5.webp
    https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/6.webp
    

    如果是使用某些云存储平台的直接使用图片的URL就可以了。

    ⑤把TXT文件放在云存储或者网站任意目录下,注意要跟下文中的PHP文件要放在同一级目录
    比如同时放在……/Random/Photo/img.txt和……/Random/Photo/img.php

    如果嫌麻烦,也可以用python自动输出解决:

    python 代码:
    
    # 作者:六月是只猫
    # 链接(URL):https://lyszm.com
    #适用于序号编排的图片如1.png、2.png……
    
    filename="D:\\文档\\imgs.txt"    /*输出目录及文件名*/
    randimgs=open(filename,"a")
    for numbers in range(1,20):       /*输出序号,这里是从1输出到20*/
        randimgs.write("https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/"+str(numbers)+".webp\n")   /*修改此处的图片地址*/
    randimgs.close()
    

    ⑤最后使用随机获取图片链接输出的PHP:

    php 代码:
    
    <?php
    //此php和保存链接的txt文件放在同一目录下
    $filename = "img.txt";  /*保存链接的txt文件名*/
    if(!file_exists($filename)){
        die('文件不存在');
    }
    //从文本获取链接
    $pics = [];
    $fs = fopen($filename, "r");
    while(!feof($fs)){
        $line=trim(fgets($fs));
        if($line!=''){
            array_push($pics, $line);
        }
    }
    //从数组随机获取链接
    $pic = $pics[array_rand($pics)];
    //返回指定格式
    $type=$_GET['type'];
    switch($type){
    //JSON返回
    case 'json':
        header('Content-type:text/json');
        die(json_encode(['pic'=>$pic]));
    default:
        die(header("Location: $pic"));
    }
    ?>
    

    ⑥在需要使用php文件的地方填入文件路径就可以访问这个随机图片php,即可调取图片输出。


    声明:本文由 六月是只猫(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。
    发一条! 发一条!
    博客logo 六月是只猫 - 互联网技术分享指南 生活,一半家长里短,一半山川湖海... 51统计 百度统计
    MOEICP 萌ICP备20248888号 ICP 京ICP备2022028403号-1 ICP 京公网安备 11010502051304号 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已安全运行 1 年 174 天 14 小时 20 分
    六月是只猫 - 互联网技术分享指南. © 2022 ~ 2024.
    网站logo

    六月是只猫 - 互联网技术分享指南 生活,一半家长里短,一半山川湖海...
     
     
     
     
    壁纸
     
     
     
     

    3

    1

  • 下一篇