当前位置: 首页 > news >正文

base64与图片的转换和预览

新建一个html,然后copy如下代码,保存,然后打开浏览器就能看到如下的样式

页面样式

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>图片预览 &amp; Base64 查看</title><style>:root {--primary: #5c6bc0;--light: #f5f5f5;--dark: #424242;--accent: #ff7043;--radius: 8px;}* {box-sizing: border-box;}body {margin: 0;font-family: "Helvetica Neue", Arial, sans-serif;background-color: var(--light);color: var(--dark);display: flex;justify-content: center;align-items: flex-start;padding: 40px 0;}.container {width: 90%;max-width: 800px;background: #fff;border-radius: var(--radius);box-shadow: 0 4px 16px rgba(0,0,0,0.1);padding: 24px;}h1 {margin-top: 0;text-align: center;color: var(--primary);}.section {margin-bottom: 24px;}.section label {display: block;margin-bottom: 8px;font-weight: bold;}.section input[type="text"],.section textarea {width: 100%;padding: 10px;border: 1px solid #ccc;border-radius: var(--radius);font-family: monospace;resize: vertical;background: #fafafa;}.section input[type="file"] {display: block;margin-top: 4px;}.buttons {text-align: center;margin-top: 8px;}.buttons button {background: var(--primary);color: #fff;border: none;padding: 10px 20px;border-radius: var(--radius);cursor: pointer;font-size: 1rem;transition: background 0.3s ease;margin: 0 8px;}.buttons button:hover {background: var(--accent);}#preview {display: block;max-width: 100%;border-radius: var(--radius);margin: 12px auto;box-shadow: 0 2px 8px rgba(0,0,0,0.1);}#base64Output {height: 120px;}</style>
</head>
<body><div class="container"><h1>图片预览 &amp; Base64 查看</h1><div class="section"><label for="base64Input">粘贴 Base64 字符串</label><textarea id="base64Input" placeholder="以 data:image/png;base64,... 开头"></textarea></div><div class="section"><label for="imageInput">或 上传 图片</label><input type="file" id="imageInput" accept="image/*"></div><div class="buttons"><button id="showBtn">显示预览</button><button id="clearBtn" style="background:#999;">清空</button></div><div class="section"><label>图片预览</label><img id="preview" alt="预览图像" style="display:none;"></div><div class="section"><label for="base64Output">对应的 Base64 字符串</label><textarea id="base64Output" readonly placeholder="这里会显示图片的 Base64"></textarea></div></div><script>const base64Input = document.getElementById('base64Input');const imageInput = document.getElementById('imageInput');const preview = document.getElementById('preview');const base64Output = document.getElementById('base64Output');const showBtn = document.getElementById('showBtn');const clearBtn = document.getElementById('clearBtn');function displayPreview() {const b64 = base64Input.value.trim();const file = imageInput.files[0];if (b64) {// 使用粘贴的 Base64preview.src = b64;base64Output.value = b64;preview.style.display = 'block';} else if (file) {// 使用上传的文件,转为 Base64const reader = new FileReader();reader.onload = (e) => {preview.src = e.target.result;base64Output.value = e.target.result;preview.style.display = 'block';};reader.readAsDataURL(file);} else {preview.style.display = 'none';base64Output.value = '';}}function clearAll() {base64Input.value = '';imageInput.value = '';preview.style.display = 'none';base64Output.value = '';}showBtn.addEventListener('click', displayPreview);clearBtn.addEventListener('click', clearAll);// 可选:在粘贴或选图时自动预览base64Input.addEventListener('input', () => {if (base64Input.value.trim()) {displayPreview();}});imageInput.addEventListener('change', displayPreview);</script>
</body>
</html>

相关文章:

  • Selenium Web自动化测试学习笔记(二)--八大元素定位
  • 追踪大型语言模型的思想(下)(来自针对Claude的分析)
  • Yii2.0 模型规则(rules)详解
  • ntdll!CsrServerApiRoutine函数--csrsrv!CsrCallServerFromServer什么时候被调用?
  • 2025.05.07-华为机考第二题200分
  • 动态规划之花园
  • 高并发内存池(一):项目简介+定长内存池的实现
  • C25-数组应用及练习
  • iTwin 数据报表(只是简单的原型不代表实现)
  • 解决 TimeoutError: [WinError 10060] 在 FramePack项目中连接 Hugging Face 超时的问题
  • ​​阿里云服务器:数字世界的“基因剪刀”与未来实验室​
  • 联想Horizon 2系列电脑 参数
  • C++面向对象 继承
  • python安装pyqt5失败
  • ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 1
  • 【SpringCloud GateWay】Connection prematurely closed BEFORE response 报错分析与解决方案
  • [Android] WPS Office11.4.1.6政务定制版
  • windows使用bat脚本激活conda环境
  • Docker + Watchtower 实现容器自动更新:高效运维的终极方案
  • Linux 信号(下篇)
  • 怎样在微信上做网站/seo网络培训班
  • seo对网站的重要性/宁波seo网站
  • 个人做网站接装修活哪个网站好/长春网络优化哪个公司在做
  • 如何投稿小说到各大网站/域名解析