javascript - 将 DIV 转换为 base64

标签 javascript jquery html base64

如何将 DIV 内的项目转换为 Base64?请参阅examle FIddle

html:

<div id="img2b64"> <img src="http://indianapublicmedia.org/stateimpact/files/2013/01/apple-image-300x300.jpg"> <div><br />

jQuery:

$('#ss').click(function(event){
    var imageUrl = $('#img2b64').find('input[name=url]').val();
    console.log('imageUrl', imageUrl);
    convertImgToBase64(imageUrl, function(base64Img){
        $('.output')
            .find('textarea')
                .val(base64Img)
                .end()
            .find('a')
                .attr('href', base64Img)
                .text(base64Img)
                .end()
            .find('img')
                .attr('src', base64Img);
    });

    event.preventDefault();
});


function convertImgToBase64(url, callback, outputFormat){
    var canvas = document.createElement('CANVAS');
    var ctx = canvas.getContext('2d');
    var img = new Image;
    img.crossOrigin = 'Anonymous';
    img.onload = function(){
        canvas.height = img.height;
        canvas.width = img.width;
        ctx.drawImage(img,0,0);
        var dataURL = canvas.toDataURL(outputFormat || 'image/png');
        callback.call(this, dataURL);
        // Clean up
        canvas = null; 
    };
    img.src = url;
}

最佳答案

var imageUrl = $('#img2b64').find('input[name=url]').val();

没有<input name="url">在您的代码中,因此返回 undefined 。也许您的意思是:

var imageUrl = $('#img2b64').find('img').prop("src");

但是您会发现这会引入自己的错误:

Image from origin 'http://indianapublicmedia.org' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

这意味着您无法将该图像加载到 Canvas 中,因为目标服务器不支持 CORS。您必须先将该图像下载到您自己的服务器,然后将其加载到您的 Canvas 中。或者在 indianapublicmedia.org 上启用 CORS

关于javascript - 将 DIV 转换为 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344231/

相关文章:

javascript - 为创建的每个新 div 更改 div 的背景颜色

javascript - AngularJS Material 在指令链接函数中使用 $mdDialog

javascript - js - 在空格键上按文档上的任意位置触发通用功能

javascript - Google 工作表记录日期单元格被编辑到另一个工作表

javascript - 有没有办法让两个 jQuery 动画同时(正确地)运行?

html - 如何从 Chrome DevTool 实现边距更改

javascript - jquery 在多个 DIV 上滑动效果并嵌入关闭效果

javascript - 如何在 $(window).resize 函数之外获取 window.width() 值?

html - 似乎无法摆脱巨大的页脚

java - 不知道如何转换 Java - HTML