做了一个网页,怎么随机读取图片?

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/&lt;width&gt;x&lt;height&gt;

这是 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,您可以这样做:

要在浏览器中请求多个相同大小的图像,请添加随机查询参数以防止图像被缓存: &lt;img src="https://picsum.photos/200/300?random=1"&gt;&lt;img src="https://picsum.photos/200/300?random=2"&gt;

结果:

此外,您始终可以使用其 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

在网页中,服务器端生成的验证码图片有啥要求,比如字体,颜色,图片大小,干扰线等等

通过 url 生成随机图片

怎么写随机生成数据的Js函数

js中怎么让一个随机数在进入网页中只随机一次

Php怎么生成数字图片