随机图片生成器
基于 Lorem Picsum · 自定义尺寸 / 数量 / 主题 · 设计开发占位图必备
自有图库随机返回
基于 Lorem Picsum · 自定义尺寸 / 数量 / 主题 · 设计开发占位图必备
· Lorem Picsum:免费占位图服务(picsum.photos),提供 10000+ 张精选高清照片
· URL 格式:
picsum.photos/600/400(随机) ·
?grayscale(灰度) ·
?blur=5(模糊) ·
/seed/xxx/600/400(固定)
· 常用尺寸:头像 400×400 / 缩略 400×300 / 横幅 1200×400 / 文章配图 800×500
· 商用授权:图片来自 Unsplash,遵循 Unsplash License(可免费用于商业 / 个人,无需署名)
了解工具定位 · 使用场景 · 对比优势
从自有图库中随机返回一张图片,适合在需要占位图、素材灵感或简单随机展示的场景下使用。设计师快速预览不同风格、开发者测试页面布局、内容创作者寻找视觉参考,都能直接调用。每次刷新返回不同结果,无需注册或上传,请求由后端处理,不涉及用户隐私数据。
前端开发者在搭建页面原型时,需要大量不同尺寸的图片填充布局,但网上的占位图服务往往有请求次数限制或广告。本工具每次请求返回一张不同内容的自有图库图片,无需注册、无调用限制,直接替换 placeholder 链接即可让页面在开发阶段就呈现真实视觉效果。
自媒体编辑在发布文章时,发现正文缺少一张与主题相关的配图,但手头素材库全是重复照片。打开本工具点击一次,立即获得一张高清随机图片,可直接用于文章插图或封面预览,省去翻找图库的时间。
平面设计师在构思海报或 banner 时,需要不同色调、构图、元素的图片来激发创意。本工具每次返回一张随机图片,连续点击即可快速浏览大量不同风格的照片,帮助跳出思维定式,找到配色或排版的新方向。
移动端测试工程师在验证图片加载、缓存、缩略图生成等功能时,需要多张不同尺寸和内容的图片作为测试素材。本工具提供稳定的随机图片 API,每次请求返回新图片,无需手动准备几十张测试图,提高测试用例覆盖效率。
独立游戏开发者在早期原型阶段,需要大量临时图片来填充 UI 界面和场景背景,但美术资源尚未到位。本工具可嵌入开发环境,每次加载返回一张随机图片作为占位素材,让团队在美术完成前就能看到游戏画面的整体效果。
| 维度 | 本工具 | 竞品 A (Lorem Picsum) | 传统方法 |
|---|---|---|---|
| 数据隐私 | 纯浏览器展示,图片不离开自有CDN | 需加载第三方域名图片,可能被追踪 | 下载图片到本地,完全离线 |
| 处理速度 | 毫秒级返回,无需等待 | 取决于CDN响应,通常1-3秒 | 需手动下载、解压、筛选,耗时数分钟 |
| 离线可用 | 需要网络,图片实时返回 | 需要网络,完全依赖第三方服务 | 完全离线,图片已保存在本地 |
| 图片来源可控性 | 自有图库,内容可审核过滤 | 第三方众包图库,图片质量参差 | 完全自主选择,可控性最高 |
| 使用便捷性 | 零配置,打开即用 | 需注册或API Key才能使用 | 需提前准备图片库,操作繁琐 |
| 图片数量与更新 | 自有图库,定期更新 | 海量图片持续更新 | 取决于本地存储,更新需手动 |
| 适用场景 | 快速占位、演示、测试 | 前端开发、设计原型 | 专业设计、离线环境 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| (无需输入,直接点击“随机获取”按钮) | 返回一张随机图片(如:https://cdn.example.com/images/2024/01/abc123.jpg) | 典型场景:用户首次使用,一键获取随机图 |
| (连续点击“随机获取”5次) | 返回5张不同的随机图片(每次URL不同) | 典型场景:多次获取,验证图片不重复 |
| (页面无输入框,仅一个按钮) | 每次点击均返回一张合法图片(无空白/错误) | 边界case:纯随机模式,无任何过滤条件 |
| (浏览器禁止第三方Cookie时使用) | 图片正常加载,不依赖Cookie存储 | 边界case:隐私模式下功能不受影响 |
| (网络断开后点击按钮) | 显示“网络异常,请稍后重试”提示 | 易错case:用户误以为离线也能使用 |
| (使用移动端浏览器访问) | 返回图片自动适配屏幕宽度,无横向滚动 | 易错case:移动端布局未做响应式时可能错位 |
将返回的图片地址直接嵌入到博客或网站中,期望永久有效每次需要展示随机图片时,重新请求工具接口,将返回的图片作为一次性资源使用工具返回的是随机图片,不保证 URL 长期有效;图库会更新,旧链接可能失效或指向不同图片
反复刷新页面期望看到“猫”或“风景”类图片接受工具完全随机的特性,或使用支持参数筛选的同类工具(如按标签筛选)该工具只从自有图库中随机选取,不提供分类筛选功能;期望特定主题属于功能误解
直接下载工具返回的图片用于商业广告、产品封面或付费素材先查看工具的版权声明或联系维护者确认图片授权范围;仅限个人/非商业用途时需标注来源自有图库的图片版权归属不明,默认不可用于商业用途;使用前必须确认授权条款
假设每次返回的图片都是 1920x1080 或正方形根据实际返回的图片尺寸动态适配展示容器(如 CSS object-fit: cover)图库包含不同来源的图片,尺寸和比例不统一;固定尺寸假设会导致布局错乱
在 <img src="https://tupian-suiji.tl654.com/"> 中直接使用工具页面 URL确认工具返回的是图片文件(如 jpg/png)还是包含图片的 HTML 页面;若返回 HTML 则需提取图片地址工具页面返回的是 HTML 内容(包含图片),不是纯图片文件;直接用于 <img> 标签不会显示图片
在循环或脚本中每秒请求数十次获取随机图片控制请求频率(如每次请求间隔至少 1 秒),或使用缓存机制减少重复请求免费工具通常有反爬机制或速率限制;高频请求会触发 429 状态码或临时封禁
尝试在 URL 后添加 ?width=800&category=animal 等参数只使用工具提供的标准接口(无参数),或查阅文档确认支持的参数列表该工具是简单的随机返回,不支持任何 URL 参数;添加参数不会生效,可能返回 404
公式推导 · 流程图解 · 依据出处
R = rand(N)
R — 返回的随机图片 URLN — 自有图库中图片总数rand() — 均匀随机选择函数图库共有 5000 张图片(N=5000)。每次请求时,系统从 1~5000 中均匀随机选取一个索引,返回对应图片的 URL。例如第 1234 次请求可能返回索引 3782 的图片,第 1235 次请求可能返回索引 99 的图片,每次独立无记忆。
适用于自有图库的随机展示场景。不适用于需要指定图片、按条件筛选或保证不重复的场景(如需去重请使用洗牌算法)。
5 种主流语言 · 复制即用
import requests
# 从随机图片 API 获取一张图片的 URL
api_url = "https://tupian-suiji.tl654.com/api/random"
try:
response = requests.get(api_url, timeout=10)
response.raise_for_status()
data = response.json()
# 假设返回格式:{"url": "https://...", "width": 1920, "height": 1080}
image_url = data["url"]
print(f"图片 URL: {image_url}")
print(f"尺寸: {data['width']}x{data['height']}")
# 下载图片到本地
img_response = requests.get(image_url, timeout=30)
with open("random_image.jpg", "wb") as f:
f.write(img_response.content)
print("已保存为 random_image.jpg")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
except KeyError as e:
print(f"响应格式异常,缺少字段: {e}")package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type ImageResponse struct {
URL string `json:"url"`
Width int `json:"width"`
Height int `json:"height"`
}
func main() {
// 请求随机图片 API
resp, err := http.Get("https://tupian-suiji.tl654.com/api/random")
if err != nil {
fmt.Printf("请求失败: %v\n", err)
return
}
defer resp.Body.Close()
var imgResp ImageResponse
if err := json.NewDecoder(resp.Body).Decode(&imgResp); err != nil {
fmt.Printf("解析 JSON 失败: %v\n", err)
return
}
fmt.Printf("图片 URL: %s\n", imgResp.URL)
fmt.Printf("尺寸: %dx%d\n", imgResp.Width, imgResp.Height)
// 下载图片
imgResp2, err := http.Get(imgResp.URL)
if err != nil {
fmt.Printf("下载图片失败: %v\n", err)
return
}
defer imgResp2.Body.Close()
file, err := os.Create("random_image.jpg")
if err != nil {
fmt.Printf("创建文件失败: %v\n", err)
return
}
defer file.Close()
written, err := io.Copy(file, imgResp2.Body)
if err != nil {
fmt.Printf("写入文件失败: %v\n", err)
return
}
fmt.Printf("已保存 %d 字节到 random_image.jpg\n", written)
}// 浏览器环境:从随机图片 API 获取并显示图片
async function getRandomImage() {
try {
const response = await fetch('https://tupian-suiji.tl654.com/api/random');
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
// 假设返回格式:{ url: '...', width: 1920, height: 1080 }
const { url, width, height } = data;
console.log(`图片 URL: ${url}`);
console.log(`尺寸: ${width}x${height}`);
// 在页面中显示图片
const img = document.createElement('img');
img.src = url;
img.alt = '随机图片';
img.width = width;
img.height = height;
document.body.appendChild(img);
} catch (error) {
console.error('获取随机图片失败:', error.message);
}
}
// 调用示例
getRandomImage();#!/bin/bash
# 从随机图片 API 获取并下载图片
API_URL="https://tupian-suiji.tl654.com/api/random"
# 获取图片信息(需要 jq 解析 JSON)
response=$(curl -s --max-time 10 "$API_URL")
image_url=$(echo "$response" | jq -r '.url')
width=$(echo "$response" | jq -r '.width')
height=$(echo "$response" | jq -r '.height')
echo "图片 URL: $image_url"
echo "尺寸: ${width}x${height}"
# 下载图片
curl -s -o "random_image.jpg" --max-time 30 "$image_url"
echo "已保存为 random_image.jpg"<?php
// 从随机图片 API 获取并下载
$apiUrl = 'https://tupian-suiji.tl654.com/api/random';
try {
// 获取图片信息
$response = file_get_contents($apiUrl);
if ($response === false) {
throw new Exception('API 请求失败');
}
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception('JSON 解析错误: ' . json_last_error_msg());
}
$imageUrl = $data['url'];
$width = $data['width'];
$height = $data['height'];
echo "图片 URL: $imageUrl\n";
echo "尺寸: {$width}x{$height}\n";
// 下载图片
$imageContent = file_get_contents($imageUrl);
if ($imageContent === false) {
throw new Exception('图片下载失败');
}
file_put_contents('random_image.jpg', $imageContent);
echo "已保存为 random_image.jpg\n";
} catch (Exception $e) {
echo '错误: ' . $e->getMessage() . "\n";
}
?>8 个高频疑问