Html <img>显示图片的三种方式

本文介绍了DataURL的概念及其在网页中加载图片的应用。详细解释了如何使用base64编码将图片转换为DataURL格式,以及这种方式的优势与局限性。适用于前端开发者了解不同图片加载方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.显示本地图片

2.显示网络上的图片,不过网络上的图片就是需要每次都去加载,可能会费流量

3.下面这种就是我们今天所要讲的第三种方式显示图片,它其实也就是根据http网络上的图片通过利用Data URL(data:image/jpg;base64,)将小图片生成数据流形式显示出来的

有时候我们会看到 <img src="data:image/jpg;base64,xxxxxxx……” />

这里的"xxxxxxx……”是一大串小图片生成数据流形式,这种方法的好处是:不用总是加载图片,而且是在没办法加载本地的图片的同时可以考虑这种,由于本人是做android客户端的,需要做内嵌页,所以这种是很好的方法.

那这些代码是如何生成的咧?

先看下这些代码“data:image/jpg;base64,xxxxxxx……” 就是一张图片的Data URL,就是利用base64编码把图片数据翻译成标准ASCII字符。

等同于:

<img src="http://www.oschina.net/img/logo_s2.png"/>

显示结果:

Data URL是在本地直接绘制图片,不是从服务器加载,所以节省了HTTP连接,起到加速网页的作用。
语法:

data:image/jpg;    声明数据协议及类型名称
base64,                 编码形式为base64
xxxxxxx……          base64编码结果

最后附上Data URL的生成方法(PHP):

<?php
$img_file = file_get_contents("http://www.oschina.net/img/logo_s2.png");
echo base64_encode($img_file);

这里可以在一些在线测试php代码的网站上获取这个xxxxxxx……(比如在:http://www.mcqyy.com/RunCode/php/上进行运行得到这串"xxxxxxx……")

4.https://www.base64-image.de/

这里可以把图片转化为在线Base64

注意:本方法适合于小图片,大图片就不要考虑了,另外IE8以下浏览器不支持这种方法。用这种方法会加重客户端的CPU和内存负担,总之有利有弊。

将Windows图片复制并粘贴到HTML `<img>` 元素通常需要一些步骤,因为浏览器直接处理的是HTML和JavaScript,而不是像操作系统那样的文件操作。以下是一个简单的示例,展示如何在用户选择图片后,将其显示HTML图片: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片粘贴</title> <script> function handleImagePaste(e) { e.preventDefault(); // 阻止默认的行为,防止图片被粘贴到文本区域 // 获取剪切板中的图片 const items = (window.clipboardData || e.originalEvent.clipboardData).items; for (let item of items) { if (item.kind === 'image') { let blob = item.getAsFile(); // 创建一个新的URL来显示图片 let url = URL.createObjectURL(blob); // 创建新的img标签,并设置src属性 let imgElement = document.createElement('img'); imgElement.src = url; imgElement.onload = function() { URL.revokeObjectURL(url); } // 图片加载完成后释放URL资源 // 将图片插入到文档中 document.body.appendChild(imgElement); break; // 找到第一个图片就停止循环 } } } // 添加图片粘贴事件监听器 document.addEventListener('paste', handleImagePaste, false); </script> </head> <body> <h1>将图片粘贴到这里:</h1> <!-- 这里可以提供一个让用户粘贴图片的地方,比如一个空div --> </body> </html> ``` 这个示例展示了如何在用户通过右键菜单、Ctrl+V等操作粘贴图片到指定区域时,动态创建`<img>`元素并显示图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值