HTML5 画布 - 将保存的图像分享到社交媒体

Cre*_*fly 6 html javascript php canvas fabricjs

感谢您花时间阅读这篇文章。

我已经浏览了这个论坛上无数的帖子,但仍然无法实现我所追求的目标。

我创建了一个 html5 画布,用于保存用户的绘图和图像。当用户按下发布时,他/她将收到一个弹出框(灯箱)来预览她的图像,并可以选择使用Addthis.com在社交网络上共享图像

这是我迄今为止所取得的成就。1. 在我的画布中,我有一个名为 #btnPreview 的按钮

$("#btnPreview").click(function (event) {
    canvas.deactivateAll();
    var strDataURI = canvas.toDataURL("png");
    var proporcao = 1;
    var proporcaoW = 500 / canvas.width;
    var proporcaoH = 400 / canvas.height;
    if (proporcaoW < proporcaoH) {
        proporcao = proporcaoW;
    } else {
        proporcao = proporcaoH;
    }
    $("#addthis_shareable").width(canvas.width * proporcao).height(canvas.height * proporcao).attr("src", strDataURI);
    //  $("#imgPreview").width(canvas.width*proporcao).height(canvas.height*proporcao).attr("src", strDataURI);
    $("#modalPreview").modal("show");
});
Run Code Online (Sandbox Code Playgroud)

这会打开一个灯箱弹出窗口。

  1. <img id"imgPreview" src"data:image/png;base64,...."> 当我尝试在 facebook、twitter 等上分享带有描述的图像时,图像存储在其中,但它不起作用。

我知道是什么问题,但无法创建此任务所需的 javascript 和 php 脚本。

我想要实现的是向这个论坛询问这个概念的最佳实践。

我的想法是创建一个 save.Php 脚本,在服务器上没有提示的情况下保存 .png 文件,或者www.example.com/image.png当我按下时 创建一个假的 url#btnPreview

一旦弹出窗口加载我的 img url 将是

<img id"imgPreview" src"www.example.com/images/md5_timestamp.png">
Run Code Online (Sandbox Code Playgroud)

这是我发现的关闭示例
示例 1 导致示例 2
示例 2 保存 base64
示例 3 将画布另存为 JPG 或 PNG
示例 4 非常接近之后的内容 - 底部答案

我希望我解释正确。

期待您的回复。

sbo*_*ose 2

可能有两种情况:

  1. 为了能够将照片/帖子 URL 分享到 Facebook,您需要首先将照片保存到您的服务器(或至少从您的应用程序提供服务)
  2. 如果您希望将其作为图像(照片)发布到 Facebook,则需要创建 OAuth2.0 流程,以便您的应用程序代表用户将照片发布到 Facebook。