JavaScript 图像数组

本教程向您介绍图像创建和迭代的 JavaScript 数组;它举例说明了使用 JavaScript Arrays和 每 Array Objects个示例都有一个启动代码和相应的输出以供练习。

目录

1.使用数组对象在JavaScript中显示图像数组

2.在JavaScript中使用数组显示图像数组


1.使用数组对象在JavaScript中显示图像数组

HTML 代码: 

<!DOCTYPE html>
<html>
<head>
    <script src="./javascript/imageArray.js"></script>
    <link rel="stylesheet" href="./css/styles.css">
    <title>Image Iteration</title>
</head>
<body>
    <h1>Click to see the next image</h1>
    <div id="splash">
        <img src="./images/splash class room image.jpg" alt="classroom image" id="mainImage">
    </div> 
    <div id="controls">
        <button id="previousbtn" onclick="previousImage()">Previous Image</button>
        <button id="nextbtn" onclick="nextImage()"> Next Image</button>
    </div>
</body>
</html>

CSS 代码: 

img{
    width: 350px;
    height: 350px;
}
#previousbtn{
    margin-right: 75px;;
}
#nextbtn{
    margin-left: 75px;
}

JavaScript 代码: 

var imgArray = new Array();

imgArray[0] = new Image();
imgArray[0].src = './images/splash class room image.jpg';

imgArray[1] = new Image();
imgArray[1].src = './images/splash animal image.jpg';

imgArray[2] = new Image();
imgArray[2].src = './images/splash nature image.jpg';

imgArray[3] = new Image();
imgArray[3].src = './images/splash food image.jpg';

imgArray[4] = new Image();
imgArray[4].src = './images/splash travel image.jpg';

function nextImage(){
    var img = document.getElementById("mainImage");
    for(var i = 0; i < imgArray.length;i++){
        if(imgArray[i].src == img.src){
            if(i === imgArray.length){
                document.getElementById("mainImage").src = imgArray[0].src;
                break;
            }
            document.getElementById("mainImage").src = imgArray[i+1].src;
            break;
        }
    }
}
function previousImage(){
    var img = document.getElementById("mainImage");
    for(var i = imgArray.length-1; i >=0 ;i--){
        if(imgArray[i].src == img.src){
            if(i === imgArray.length){
                document.getElementById("mainImage").src = imgArray[4].src;
                break;
            }
            document.getElementById("mainImage").src = imgArray[i-1].src;
            break;
        }
    }
}

输出: 

在这段代码中,每个img元素都是一个image对象。src也通过分配一个字符串来定义,该字符串引用具有该特定图像的文件名。

nextImage函数获取具有 id 的第一个元素,mainImage然后迭代最后的图像。该previousImage函数还获取具有 id 的第一个元素mainImage(就像nextImage方法一样),但从当前图像循环到后退

2.在JavaScript中使用数组显示图像数组

HTML 代码: 

<!DOCTYPE html>
<html>
<head>
    <script src="./javascript/imageArray.js"></script>
    <link rel="stylesheet" href="./css/styles.css">
    <title>Image Iteration</title>
</head>
<body onload="makeImage();">
    <div class="contents" id="content"></div>
    <button onclick="nextImage()">Next Image</button>
</body>
</html>

CSS 代码: 

img{
    width: 350px;
    height: 350px;
}

JavaScript 代码: 

var images = ["./images/splash class room image.jpg",
"./images/splash animal image.jpg",
"./images/splash nature image.jpg",
"./images/splash food image.jpg",
"./images/splash travel image.jpg"];
var index = 0;

function makeImage() {
   var img = document.createElement('img')
   img.src = images[index];
   document.getElementById('content').appendChild(img);
}

function nextImage(){
   var img = document.getElementById('content').getElementsByTagName('img')[0]
   index++;
   index = index % images.length; 
   img.src = images[index];
}

makeImage函数构造img标签并指定它们的src属性。使用标记onload中的事件加载页面后立即调用此函数。创建 HTML 元素(我们正在为此示例创建一个<body>元素)。createElementimg

然后它指定img.src获取图像。该函数在 id 为 的元素内appendChild追加元素。imgcontent

简单来说,该makeImage功能是img在id值为 的标签内制作标签content

函数中的第一行代码nextImage获取imgid 为 的元素的第一个标签content。如果index = index % images.length;输出中有最后一张图像,则将带您到第一张图像。

您看到图像是因为此函数还设置了src属性。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Canvas的`putImageData()`方法绘制二维数组表示的图像。 `putImageData()`方法需要一个`ImageData`对象作为参数,该对象包含了图像的像素数据。我们可以通过创建一个空的`ImageData`对象,然后将二维数组的每个元素对应填入该对象中,最后调用`putImageData()`方法绘制图像。 下面是一个绘制二维数组表示的灰度图像的例子: ```javascript // 假设二维数组为 image_data var image_data = [ [100, 120, 130, 140], [110, 125, 135, 145], [120, 130, 140, 150], [130, 140, 150, 160] ]; // 创建一个空的 ImageData 对象 var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var img_data = ctx.createImageData(image_data[0].length, image_data.length); // 将二维数组的每个元素对应填入 ImageData 对象 for (var y = 0; y < image_data.length; y++) { for (var x = 0; x < image_data[y].length; x++) { var i = (y * image_data[y].length + x) * 4; img_data.data[i] = image_data[y][x]; // R img_data.data[i+1] = image_data[y][x]; // G img_data.data[i+2] = image_data[y][x]; // B img_data.data[i+3] = 255; // A } } // 绘制图像 ctx.putImageData(img_data, 0, 0); ``` 上述代码中,我们首先定义了一个二维数组`image_data`表示灰度图像的像素值。然后创建一个空的`ImageData`对象`img_data`,通过两个嵌套的循环将二维数组的每个元素对应填入该对象中。在填入时,我们将每个像素的R,G,B分量设置为相同的像素值,A分量设置为255,表示完全不透明。最后调用`putImageData()`方法绘制图像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值