html5 实现图片预览

  • Blob

  • Tip

图片预览效果

====================================================================

还是先直接给出 demo 吧,大家可以运行这个 demo 先来看一下效果:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>blob-fileRender</title> <style> #prev1, #prev2 { height: 400px; width: 100%; } img { height: 100%; } </style> </head> <body> <div id="prev1"> <input type="file" id="file1" accept="image/*"> <br> <img src="" alt="" id="view1"> </div> <br><br> <div id="prev2"> <input type="file" id="file2" accept="image/*"> <br> <img src="" alt="" id="view2"> </div> <script> document.getElementById("file1").addEventListener('change', function(){ var files = this.files; var file; if (files && files.length) { file = files[0]; if (/^image\/png$|jpeg$/.test(file.type)) { document.getElementById('view1').src = URL.createObjectURL(file); } else { alert("Please choose an image file with jpg jpeg png."); } } else { alert("Please choose image file"); } }, false); document.getElementById("file2").addEventListener('change', function(){ var files = this.files; var file; if (files && files.length) { file = files[0]; if (/^image\/png$|jpeg$/.test(file.type)) { var reader = new FileReader(); reader.onload = function (e) { document.getElementById('view2').src = e.target.result; }; reader.readAsDataURL(file); } else { alert("Please choose image file with jpg jpeg png."); } } else { alert("Please choose image file"); } }, false); </script> </body> </html>

可以保存这个 html 文件,然后打开。

这里面有两个选择文件的按钮,都实现了选中图片,然后实时预览的效果。但是实现的细节并不一样。

分别使用了 URLFileReader 来实现的。

FileReader

========================================================================

FileReader 对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。

其中 File 对象可以是来自用户在一个 <input> 元素上选择文件后返回的 FileList 对象,也可以来自拖放操作生成后的 DataTransfer 对象,还可以是来自在一个 HTMLCanvasElement 上执行 mozGetAsFile() 方法后返回结果。

想要创建一个 FileReader 对象,很简单,如下:

var reader = new FileReader();

FilerReader 对象有以下方法和事件:

方法概述


abort()

readAsArrayBuffer()

readAsBinaryString()

readAsDataURL()

readAsText()

事件处理程序


onabort

onerror

onload

onloadend

onloadstart

onprogress

关于 方法概述事件处理程序 的详细使用细则,建议大家阅读这篇较为官方的文档:

https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

URL

=================================================================

在现代浏览器中,有 URL 这个对象,可以直接使用:

URL.createObjectURL(file);

为了兼容性考虑,我们可以这样:

var URL = window.URL || window.webkitURL;

这个 URL 提供了用于创建和管理对象 URLs 的静态方法。它也可以作为一个构造函数被调用来构造 URL 对象。

语法


调用一个静态方法:

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML5提供了多种实现预览图片和视频的方式。 预览图片可以使用HTML5的`<img>`标签,通过设置`src`属性指定图片的路径来展示图片。可以通过添加`width`和`height`属性来控制图片的显示大小。另外,可以使用CSS属性来设置图片的样式,比如调整边框、圆角等。如果需要预览多张图片,可以使用JavaScript来动态地修改`src`属性。 预览视频可以使用HTML5的`<video>`标签,通过设置`src`属性指定视频文件的路径来播放视频。可以使用`controls`属性来显示视频的播放控制栏,包括播放/暂停、音量和进度条等。同时,可以设置`width`和`height`属性来控制视频的显示大小。另外,还可以使用JavaScript来控制视频的播放、暂停、音量、全屏等功能,通过对`<video>`标签的属性和方法进行操作。 为了兼容不同浏览器和不同文件格式,可以在`<video>`标签内添加多个`<source>`标签,每个`<source>`标签指定一个不同格式的视频文件。浏览器会选择支持的第一个视频格式进行播放。此外,可以使用`poster`属性设置视频封面,在视频加载前显示一张图片。 总结起来,HTML5可以通过`<img>`标签和`<video>`标签来实现图片和视频的预览功能,通过设置相关属性和样式,以及使用JavaScript来控制播放和操作。这些功能的实现可以根据需求来灵活选择,并且需要考虑浏览器的兼容性和文件格式的支持。 ### 回答2: 在HTML5中,我们可以使用HTML标签和JavaScript来实现预览图片和视频的功能。 对于图片预览,可以使用HTML的<input type="file">标签来创建一个文件上传表单,用户可以选择本地的图片文件进行上传。然后,借助JavaScript的FileReader对象,可以读取这个文件,并以DataURL的形式将其显示在页面中。通过设置<img>标签的src属性为DataURL,可实现预览图片的效果。 对于视频预览HTML5提供了<video>标签。通过设置<video>标签的src属性为视频文件的URL,即可将视频加载到页面中进行预览。此外,<video>标签还提供了一些属性和方法用于控制视频的播放、暂停和调整播放进度等功能,可以根据需求进行配置。 在实际使用中,可以使用JavaScript添加事件监听器,以便根据用户的操作来控制图片和视频的预览效果,比如播放、暂停、拖动进度条等。另外,可以根据需要设置一些样式或使用其他的第三方库来美化预览效果,增强用户体验。 总而言之,通过使用HTML5中提供的相关标签和JavaScript的操作,我们可以方便地实现图片和视频的预览功能,为用户提供更好的浏览体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值