添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

需求:从接口中获取 svg 的 url,将获取到的内容转换为 Base64 的图片。

  function getBase64Image(img,width,height) {
    var canvas = document.createElement("canvas");
    canvas.width = width ? width : img.width;
    canvas.height = height ? height : img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
    var dataURL = canvas.toDataURL();
    self.svgData = dataURL;
    return dataURL;

new 一个 Image ,在 onload 方法中调用 getBase64Image 方法。使用 svgData 来将 dataURL 存起来。

getBase64(img){
  let self = this;
  ......
  var image = new Image();
  image.crossOrigin = '';
  image.src = img;
  var deferred=$.Deferred();
  if(img){
    image.onload =function (){
      deferred.resolve(getBase64Image(image));
    return deferred.promise();
                    需求:从接口中获取 svg 的 url,将获取到的内容转换为 Base64 的图片。  function getBase64Image(img,width,height) {    var canvas = document.createElement("canvas");    canvas.width = width ? width : img.width;    canvas.h...
methods: {
	onOK() {
		//调用换方法 svgBase64为svgbase64的数据 格式:data:image/svg+xml;base64,..................
		let pngBase64Fun = this.svgBase64ToPngBase64(svgBase64);
		pngBase64Fun.then((res) => {
			// 将svg base64 pngbase64后执行回调函数,res 为换后的png
				
需要将端上传过来的svg文件解析为字符串,然后再生成jpeg格式图片,再将图片Base64格式进行使用首先引入如下以来。版本一定按照这个来,高版本会出现各种类丢失的问题。 再就是工具类代码 可以看到生成了base64字符串 进行化后能够复原出图片
换链接:https://www.sojson.com/image2base64.html 2、使用两者区别 (1)使用一个63.8k的svg与使用base64之后的两个文件 a、使用svg b、使用base64 (2)使用一个225k的svg与使用base64之后的两个文件 a、使用svg b、使用base64 3、svgbase64有什么好处吗? (1)减少http
今天遇到一个项目中使用纯色图标的问题,用字体麻烦用图片low,所以就想直接用svg,毕竟只有一两个图标。 第一想法是用 DataURI,然后想到了之前 CSS-tricks 的文章,翻了下做下汇总: 不建议把 svg base64 来用 base64 本身浏览器解码也会消耗一定的资源 svg base64 后反而会变大 解决方案: 压缩 svg 文件,使用 SVGO 或者 SV...
// 找到页面上面的svg元素 const svg = document.getElementById('svg'); // 将整个 document 对象序列化为一个 XML 字符串 const s = new XMLSerializer().serializeToString(svg); // 通过window.btoa() 方法用于创建一个 base-64 编码的字符串 ```javascript // 假设svgBase64是SVGBase64数据 let svgBase64 = "data:image/svg+xml;base64,.................."; // 创建一个Image对象 const img = new Image(); // 设置Image对象的src为SVGBase64数据 img.src = svgBase64; // 创建一个canvas元素 const canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; // 获取canvas的2D上下文 const context = canvas.getContext('2d'); // 在canvas上绘制SVG图像 context.drawImage(img, 0, 0); // 将canvas换为SVG格式的Base64 let svgBase64Result = canvas.toDataURL('image/svg+xml'); 这段代码将SVGBase64数据换为SVG格式的Base64数据。请注意,这里使用的是canvas的toDataURL方法,并将参数设置为'image/svg+xml',以确保输出的是SVG格式的Base64数据。 希望这可以帮助到你! #### 引用[.reference_title] - *1* *2* [js实现svg base64png base64 (base64文件上传)](https://blog.csdn.net/m0_58719994/article/details/127078232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ] 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题 47723