将DataURL保存为jpg

时间:2014-10-03 14:56:46

标签: javascript jquery data-url

我有以下代码将图像文件(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"没有任何影响。有什么想法吗?

1 个答案:

答案 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"));;

    });
});

这应该有效