相关疑难解决方法(0)

来自DataURL的Blob?

使用FileReader's readAsDataURL()我可以将任意数据转换为数据URL.有没有办法Blob使用内置的浏览器apis 将数据URL转换回实例?

javascript fileapi

73
推荐指数
7
解决办法
7万
查看次数

将Canvas元素下载到图像

保存画布对象的不同方法有哪些?

在我的研究中,我发现了两种方法:

var data = canvas.toDataURL();
var prev = window.location.href;
window.location.href = data.replace("image/png", "image/octet-stream");
window.location.href = prev;
Run Code Online (Sandbox Code Playgroud)

另一种方法是拍摄快照.

还有其他方法吗?

是否可以自定义下载文件名?

javascript canvas download

30
推荐指数
5
解决办法
5万
查看次数

HTML5/Javascript - DataURL到Blob和Blob到DataURL

我有一个显示我的网络摄像头的画布的DataURL.我使用Matt的答案将此dataURL转换为blob:如何在javascript中将dataURL转换为文件对象?

如何将此blob转换回相同的DataURL?我花了一天的时间研究这个问题并且我很震惊,除非我失明,否则没有更好的记录.

编辑:有

var urlCreator = window.URL || window.webkitURL; 
var imageUrl = urlCreator.createObjectURL(blob); 
Run Code Online (Sandbox Code Playgroud)

但它只返回一个看似指向本地文件的非常短的URL,但我需要通过网络发送网络摄像头数据.

javascript html5 blob

27
推荐指数
3
解决办法
4万
查看次数

"失败 - 网络错误"当尝试使用"下载"属性在HTML5中提供下载时

我正在尝试做的基本摘要:

  • 从用户获取文件(使用"dropzone"拖放引导程序模块来接收文件)
  • 修改并对文件执行一些"工作"
  • 将文件一起压缩为单个文件以供下载
  • 发送下载回用户下载(自动或链接,详见下文)

上面的粗线是那个不起作用的线,我正试图想出来.以下是该文章的相关HTML和javascript:

<button type="button" class="btn btn-primary" id="transform">
    <span class="glyphicon glyphicon-wrench"></span>
    Transform Uploaded Files
</button>
<a id="test_dl" href="" download="user_download.zip">
    Download File
</a>
$('#transform').click(function (e) {

    $.getJSON('/transform', {}, function (final_zip){
        var zipfile = "file://" + final_zip.zip_filename

        $('a#test_dl').attr("href", zipfile)
    });
});
Run Code Online (Sandbox Code Playgroud)

用户单击"转换上载的文件"按钮,然后将href更新为生成的zipfile位置,然后通过单击"下载文件"HTML下载生成的包.

到目前为止,我已经在Chrome中对此进行了测试并使用了开发人员控制台,我可以看到在点击下载按钮之前href正在正确更新,但它总是会出现"失败 - 网络错误"对话框.奇怪的是,当我点击"显示所有下载"然后点击失败的下载时,它就成功完成了.

问题我希望得到解答

  • 这里看起来有什么问题?
  • 这甚至是正确的方法吗?我正在尝试做的就是在完成该过程后将文件发送回用户.我担心"file://"无论如何都不正确,当服务器实际远离使用它的用户时,我会失败(目前它是本地的,因为我正在开发它)

编辑:我应该补充一点,这个后端目前正在Python的Flask上运行

html javascript python jquery flask

18
推荐指数
2
解决办法
2万
查看次数

是否可以以编程方式检测数据URL的大小限制?

我正在使用javascript和html画布来调整jpeg图像的大小.调整大小后,我将其canvas.toDataURL用作锚标记中的href属性,以便提供用户可以下载已调整大小的图像的链接.

这可以很好地达到某个图像大小.

似乎不同的浏览器对数据网址的大小有不同的限制,如下所述:https: //developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs

在chrome中,当我超过数据URL大小限制时,单击下载链接时没有任何反应; 没有错误或任何事情(据我所知).

有没有办法以编程方式检测数据网址是否过大?也许某些浏览器事件会告诉我点击下载链接是否失败?

理想情况下,我想检测下载是否成功.当数据网址太大时,我想向最终用户显示一个解释,说明如何右键单击图像并选择"另存为...",这似乎总是有效.

更新1:

看起来使用canvas.toBlob是目前最好的解决方法.这是api文档:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob.

这是一个jsfiddle,演示了当使用toDataURL更大的画布时,锚点href下载链接如何失败,但toBlob似乎有效:

https://jsfiddle.net/upgradingdave/c76q34ac/3/

以下是一些相关的stackoverflow问题: canvas.toDataURL()下载大小限制

数据协议URL大小限制

javascript html5 canvas todataurl

7
推荐指数
1
解决办法
2922
查看次数

在画布上绘制图像并导出打印质量图像

我在做什么:

我正在使用Fabric.js开发画布应用程序。用户可以在画布中放置图像或文本

我想做的事:

当用户下载图像时,用户应该能够打印它。目前我正在研究 length: 5 X 8 (inches)。在 中Fabric.jstoDataURL()函数默认会给出72 DPI图像,我打算用PHP它来将其转换为300dpi图像。

因此,要创造一个高品质的图像5X8300dpi,形象应该是1500px X 2400px。但我不能为用户提供那么多空间,因为它不会很直观。

所以,我做了以下链接中的建议

导出具有高质量图像的画布的最佳做法是什么?

问题:

但我正面临一个麻烦。当用户放置文本或图像时,它显得非常小。当我单击文本或图像时,几乎看不到边角和边框。它考虑了画布的相对大小。请看小提琴

html javascript canvas fabricjs

1
推荐指数
1
解决办法
2579
查看次数

标签 统计

javascript ×6

canvas ×3

html ×2

html5 ×2

blob ×1

download ×1

fabricjs ×1

fileapi ×1

flask ×1

jquery ×1

python ×1

todataurl ×1