做了一个网页,怎么随机读取图片?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做了一个网页,怎么随机读取图片?相关的知识,希望对你有一定的参考价值。
就是我希望别人访问的时候,可以产生随机数。然后根据随机号码,决定读取图片,然后显示图片。就是说,读者刷新之后可以改变图片。
把如下代码加入<body>区域中<SCRIPT language="javascript"><!--
today=new Date();
jran=today.getTime();
function rnd()
ia=9301;
ic=49297;
im=233280;
jran = (jran*ia+ic) % im;
return jran/(im*1.0);
;
function rand(number)
return Math.ceil(rnd()*number);
;
document.write("<CENTER>");
for(i=1;i<=1;i++)
myNum=(rand(10)); //改成你要随机显示的图片数;
if(myNum == 1) document.write("<img src='back.jpg'>");
if(myNum == 2) document.write("<img src='j2.gif'>"); //图片路径,可用http://
if(myNum == 3) document.write("<img src='email.gif'>");
if(myNum == 4) document.write("<img src='arrow.gif'>");
if(myNum == 5) document.write("<img src='j2.gif'>");
if(myNum == 6) document.write("<img src='email.gif'>");
if(myNum == 7) document.write("<img src='arrow.gif'>");
if(myNum == 8) document.write("<img src='j2.gif'>");
if(myNum == 9) document.write("<img src='back.jpg'>");
if(myNum == 10) document.write("<img src='email.gif'>");
else
document.write();
;
document.write("</CENTER>");
//-->
</SCRIPT> 参考技术A 用JS写 参考技术B 关注
通过 url 生成随机图片
【中文标题】通过 url 生成随机图片【英文标题】:Generate random image by url 【发布时间】:2020-07-02 23:04:57 【问题描述】:我有一个带有端点的 API:
api/image/1
把图片还给我1
api/image/random
给我一张随机图片
每当我调用随机图片时,例如在 1 个网页上 5 次,每次都是相同的图片。有点像https://picsum.photos/seed/picsum/200/300...
我想要一个随机的图像,每次。即使我在 1 个网页上调用 10 次随机图像。有没有办法做到这一点?
【问题讨论】:
能否分享您的代码,以便我们查看对 API 的调用和 API 代码/文档? 用一个例子来编辑这个问题:jsfiddle.net/k7a4vctL 前 2 个图像总是相同的:是否也可以在我的 API 中使这些图像真正随机化? dilbert.com/strip/2001-10-25 【参考方案1】:这里是最流行和最稳定的 API, 简单易用,每次都会将您重定向到随机图像。
网址
https://source.unsplash.com/random/300x200
语法
https://source.unsplash.com/random/<width>x<height>
这是 JS 技巧,可以在每个请求上获取唯一图像
https://source.unsplash.com/random/300x200?sig=$Math.random()
【讨论】:
【参考方案2】:您需要随机化您网址中的数字; 网址 => https://picsum.photos/200/300?random=1
<img id = 'imgShow' />
document.getElementById('imgShow').src = 'https://picsum.photos/'+(200+rand())+'/' + (300 + rand()) +'?random=1';
function rand() return Math.floor(Math.random() * 90) ;
【讨论】:
【参考方案3】:正如这个githubissue所说,你基本上可以使用https://source.unsplash.com/random/200x200?sig=incrementingIdentifier
。
<img src="https://source.unsplash.com/random/200x200?sig=1" />
<img src="https://source.unsplash.com/random/200x200?sig=2" />
<img src="https://source.unsplash.com/random/200x200?sig=3" />
【讨论】:
【参考方案4】:他们实际上在他们的文档中解决了这个常见问题。有趣的是,您正在使用他们的建议来实现完全相反的效果:
静态随机图像 通过在 URL 的开头添加 /seed/seed,每次基于种子获取相同的随机图像。
https://picsum.photos/seed/picsum/200/300
解决方案
根据 Picsum,您可以这样做:
要在浏览器中请求多个相同大小的图像,请添加随机查询参数以防止图像被缓存:
<img src="https://picsum.photos/200/300?random=1">
<img src="https://picsum.photos/200/300?random=2">
结果:
此外,您始终可以使用其 API 获取 URL 列表,它允许您定义图像的数量和更多的东西。我建议实际阅读他们提出的小指南on their site
【讨论】:
【参考方案5】:这是由浏览器缓存引起的,因为您正在有效地请求相同的图像,这可以在我的浏览器的截屏中看到,
两行代码,
<img src="https://picsum.photos/200/300">
<img src="https://picsum.photos/200/300">
一个服务器请求,
根据您使用的语言,您需要在 url 中添加一些随机元素,
<img src="https://picsum.photos/200/300?nocache=<?php echo microtime(); ?>" >
<img src="https://picsum.photos/200/300?nocache=<?php echo microtime(); ?>">
我在 PHP 中添加了 microtime(),microtime 的使用意义重大,因为如果服务器和客户端速度很快,使用 time() 不会总是提供不同的请求 url。
我现在收到两个请求和两个图像,
【讨论】:
以上是关于做了一个网页,怎么随机读取图片?的主要内容,如果未能解决你的问题,请参考以下文章
用c#wpf 怎么上传图片到数 据库 并且 读取出来 数据库:SQL server2008 vs2013