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

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>

http://www.xdnf.cn/news/4485.html

相关文章:

  • Python Bug 修复案例分析:多线程共享资源引发的数据不一致问题修复
  • SSRF请求伪造
  • -CoderOilStationJava高级工程师
  • 民宿管理系统6
  • 时间序列数据集构建方案Pytorch
  • Vuerouter 的底层实现原理
  • 【机器学习】Logistic 回归
  • 藏文助词标注器入门实践
  • SQLite数据库加密(Java语言、python语言)
  • 第8章-1 查询性能优化-优化数据访问
  • 微信小程序预览文件 兼容性苹果
  • redis bitmap数据类型调研
  • TB6600HG是一款PWM(脉宽调制)斩波型单芯片双极性正弦波微步进电机驱动集成电路。
  • 三款实用工具推荐:配音软件+Windows暂停更新+音视频下载!
  • ZYNQ移植FreeRTOS与OpenAMP双核开发实践指南
  • 《汽车噪声控制》复习重点
  • AI开发playwright tool提示词
  • 信奥赛CSP-J复赛集训(图和树专题)(1):P8604 [蓝桥杯 2013 国 C] 危险系数
  • 蓝桥杯 20. 倍数问题
  • 传输层协议 1.TCP 2.UDP
  • 碰一碰发视频源码搭建的技术迭代与升级实践
  • 16.Excel:数据收集
  • cuda矩阵加法
  • 【解决】VsCode C++异常【terminate called after throwing an instance of ‘char const‘】
  • STM32的网络天气时钟项目
  • 【AI提示词】双系统理论专家
  • 在IDEA中编写Spark程序并运行
  • 深入解析Http11AprProtocol:Tomcat高性能通信的底层原理
  • MySQL OCP和Oracle OCP怎么选?
  • daplink开发_一次开发DAPLink的详细开发流程及调试步骤