当前位置:实例文章 » 其他实例» [文章]前端JS 展示上传图片缩略图(本地图片读取)

前端JS 展示上传图片缩略图(本地图片读取)

发布人:shili8 发布时间:2025-03-12 07:17 阅读次数:0

**前端JS 展示上传图片缩略图**

在现代网页应用中,用户上传图片是非常常见的功能。然而,直接上传原始图片可能会导致页面加载速度变慢、占用大量服务器资源等问题。因此,我们需要对上传的图片进行处理,生成一个合适大小的缩略图,以便快速展示给用户。

在本文中,我们将使用JavaScript和HTML5 Canvas API来实现图片缩略图的展示功能。

###1. HTML结构首先,我们需要定义一个HTML结构来容纳我们的图片上传控件和缩略图展示区域。

html<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>图片上传与缩略图展示</title>
 <style>
 #image-container {
 width:300px;
 height:200px;
 border:1px solid #ccc;
 padding:10px;
 }
 #thumbnail-container {
 width:100px;
 height:100px;
 border:1px solid #ccc;
 padding:5px;
 }
 </style>
</head>
<body>
 <h1>图片上传与缩略图展示</h1>
 <!--上传控件 -->
 <input type="file" id="image-input" accept=".jpg, .jpeg, .png">
 <!-- 缩略图展示区域 -->
 <div id="thumbnail-container"></div>
 <script src="script.js"></script>
</body>
</html>

###2. JavaScript逻辑接下来,我们需要编写JavaScript逻辑来处理图片上传、生成缩略图并展示在页面上。
javascript// script.jsconst imageInput = document.getElementById('image-input');
const thumbnailContainer = document.getElementById('thumbnail-container');

// 监听文件输入控件的变化imageInput.addEventListener('change', (e) => {
 const file = e.target.files[0];
 // 检查是否是图片类型 if (!file.type.match(/(jpg|jpeg|png)$/)) {
 alert('请上传jpg、jpeg或png格式的图片!');
 return;
 }
 //读取本地图片 const reader = new FileReader();
 reader.onload = (event) => {
 const imageDataUrl = event.target.result;
 //生成缩略图 const thumbnail = generateThumbnail(imageDataUrl);
 // 展示缩略图 displayThumbnail(thumbnail, thumbnailContainer);
 };
 reader.readAsDataURL(file);
});

//生成缩略图函数function generateThumbnail(imageDataUrl) {
 const image = new Image();
 image.src = imageDataUrl;
 return new Promise((resolve) => {
 image.onload = () => {
 const canvas = document.createElement('canvas');
 const context = canvas.getContext('2d');
 // 设置缩略图大小 canvas.width =100;
 canvas.height =100;
 // 绘制缩略图 context.drawImage(image,0,0,100,100);
 resolve(canvas.toDataURL());
 };
 });
}

// 展示缩略图函数function displayThumbnail(thumbnailUrl, container) {
 const thumbnail = document.createElement('img');
 thumbnail.src = thumbnailUrl;
 container.innerHTML = '';
 container.appendChild(thumbnail);
}

###3. 总结在本文中,我们使用JavaScript和HTML5 Canvas API实现了图片上传与缩略图展示的功能。通过读取本地图片、生成缩略图并展示在页面上,我们可以快速展示给用户,提高网页应用的性能和用户体验。

当然,这只是一个基本示例,你可以根据实际需求进行扩展和优化。

相关标签:js图片地图
其他信息

其他资源

Top