我有以下代码将图像文件(jpg / png)转换为数据网址。完成裁剪后,我可以生成渲染图像,但保存为png。我需要能够将数据URL保存为jpg。
renderButton.click(function (event) {
var dataUrl;
imgly.renderToDataURL("png", { size: "1280" }, function (err, dataUrl) {
var image = $("<img><br>").attr({
src: dataUrl
});
image.appendTo($(".result"))
$button = $('<button class="btn btn-default remove">')
.text('Remove')
.on('click', function () {
image.remove();
$(this).remove();
return false;
});
$button.appendTo($(".result"));;
});
});
在renderToDataURL行中将"png"
更改为"jpg"
没有任何影响。有什么想法吗?
答案 0 :(得分:3)
将您的电话改为
imgly.renderToDataURL("image/jpeg", { size: "1280" }, function (err, dataUrl)
如何阅读源代码
renderToDataURL: (format, options={}, callback) ->
if typeof options is "function"
callback = options
options = {}
@photoProcessor.renderImage options, (err, imageData) =>
canvas = Utils.newCanvasFromImageData imageData
callback null, canvas.toDataURL(format)
其中format
是图片格式,canvas.toDataURL(format)
负责数据转换
问题是MIME类型,您如何阅读the spec
当使用一个或多个参数调用toDataURL(type)方法时, 它必须返回一个数据:包含图像表示的URL 按类型给出的格式。可能的值是没有的MIME类型 参数,例如image / png,image / jpeg,甚至可能 如果实现实际上保留了足够的信息,则为image / svg + xml 从画布中可靠地渲染SVG图像。
修改强>
renderButton.click(function (event) {
var dataUrl;
imgly.renderToDataURL("image/jpeg", { size: "1280" }, function (err, dataUrl) {
var image = $("<img><br>").attr({
src: dataUrl
});
image.appendTo($(".result"))
$button = $('<button class="btn btn-default remove">')
.text('Remove')
.on('click', function () {
image.remove();
$(this).remove();
return false;
});
$button.appendTo($(".result"));;
});
});
这应该有效