吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2193|回复: 15
收起左侧

[其他原创] 【HTML】图片转换SVG

[复制链接]
hdxzd12 发表于 2023-10-15 21:35


[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>SVG图片生成器</title>
  <style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      background-color: #f7f7f7;
      font-family: Arial, sans-serif;
    }
    
    .container {
      text-align: center;
      padding: 20px;
      background-color: #fff;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    h1 {
      margin-top: 0;
    }

    input[type="file"] {
      margin-bottom: 10px;
      display: none;
    }

    label {
      display: inline-block;
      padding: 10px 20px;
      background-color: #007bff;
      color: #fff;
      cursor: pointer;
    }

    .avatar {
      margin-top: 10px;
      max-width: 100%;
      height: auto;
    }

    .download-button {
      margin-top: 10px;
      display: none;
    }
  </style>
</head>
<body>
  <div class="container">
    <h1>SVG图片生成器</h1>
    <label for="upload">选择图片</label>
    <input id="upload" type="file" required accept="image/gif, image/jpeg, image/png">
    <img class="avatar" src="" alt="Avatar Preview">
    <a class="download-button" href="#" download="noavatar.svg">下载 SVG</a>
  </div>

<script>
document.getElementById('upload').addEventListener('change', function() {
  var file = this.files[0];
  if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.addEventListener('load', function() {
      var dataURL = this.result;
      var svgCode = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="120"><image xlink:href="'+dataURL+'" height="120" width="120"/></svg>';
      var blob = new Blob([svgCode], {type: 'image/svg+xml'});
      var url = URL.createObjectURL(blob);
      document.querySelector('.avatar').src = url;
      document.querySelector('.download-button').style.display = 'inline-block';
      document.querySelector('.download-button').href = url;
    });
  }
});
</script>
</body>
</html>

免费评分

参与人数 5吾爱币 +9 热心值 +5 收起 理由
xy1560 + 1 + 1 谢谢@Thanks!
caojian162411 + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
grrr_zhao + 1 + 1 谢谢@Thanks!
helian147 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2023-10-15 23:10
这转换没意义,只是把位图包装成了矢量图的格式。

SVG 主要目的是制作矢量图,这样的意义在于可以无损放大。
你这样直接把位图的每个像素塞进去 svg,放大后照样糊。
大侠在路上 发表于 2023-10-15 21:57
leonca 发表于 2023-10-15 22:08
eoven8 发表于 2023-10-15 22:12
试了,不错
monnyabc 发表于 2023-10-15 23:20
很方便,转换正需要
saobee 发表于 2023-10-15 23:26
一开始还以为是转成矢量,结果是转成base64,文件更大了,所以这意义在哪
ywqisok 发表于 2023-10-16 01:09
这个可以,先收藏了
jeonlee 发表于 2023-10-16 08:29
爱飞的猫 发表于 2023-10-15 23:10
这转换没意义,只是把位图包装成了矢量图的格式。

SVG 主要目的是制作矢量图,这样的意义在于可以无损放 ...

那么,怎么弄呢? 请赐教~

点评

找个设计师重新画… 通常是成本最低的做法 当然,你也可以写个算法分析,把位图解构成基本元素(线,矩形,圆形等),然后重构成 svg 矢量图。  详情 回复 发表于 2023-10-16 20:16
yu520 发表于 2023-10-16 08:44
不是太懂,这是啥意思
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表