【问题标题】:canvas.toDataURL is returning black image while picking pic with cordovaImagepickercanvas.toDataURL 在使用cordovaImagepicker 选择图片时返回黑色图像
【发布时间】:2016-06-28 12:42:12
【问题描述】:

我正在使用 html canvas 调整图像大小。当我从项目文件夹加载图像时,我将图像路径(img/tom.jpg)传递给 canvas.draw 方法。之后我得到 base64url,然后我正在追加那个指向 img src 的 url,工作得很好。但是当我用 cordovaImagepicker 在科尔多瓦中挑选图像然后我将响应 url 传递给画布绘制方法时,我得到 base64 url​​ 但是当我将该 url 附加到 img src 时,它完全像正方形一样黑。请帮助我..

这是我的 html(这里是 dummyImage {{这是我从设备库中获取的图像 url}}):-

  <img id="sourceImage" src="" style="display:none;">
          <img id="dummyImage" width="150" height="150" src="{{image}}" alt="The Scream" style="display:none;">
          <canvas id="myCanvas" width="230" height="230"style="display:none;">
    <script>
     $(document).ready(function(){

        var canvas = document.getElementById("myCanvas");
        var ctx = canvas.getContext("2d");
        var img = document.getElementById("dummyImage");

        ctx.drawImage(img, 0,0, 230, 230);

        $('#sourceImage').attr('src', canvas.toDataURL("image/jpeg"));
        $.getScript('js/test.js');

    });
      </script>

这是我的控制台,在 dummyImage(img tag id) 中,我得到了选择的图像 url,在 sourceImage 中,我得到了画布调整大小的 url,看到我得到黑色图像...

【问题讨论】:

    标签: html image cordova canvas


    【解决方案1】:

    您的问题可能在于使用src="file:///data/data/..."。来源应该类似于/path/to/picture.jpg

    画布本身不是黑色方块,它只是一个空/透明画布的图像渲染。要确认这一点,只需从画布元素中删除 display:none。

    小提琴:https://jsfiddle.net/u857pehs/1/

    【讨论】:

    • 我不想在那里显示图像,所以我写了 display:none.Actually "file:///data/data/..." is the path which is come when I am从设备库中选择图像然后我只是调整图像大小并传递给 src ......但这里我没有显示图像。我想用 jquery 显示它......附加方法......当我将本地文件路径传递为正如我所说,你通过的工作很完美..
    • 我明白,但我认为将 drawImage 与加载了file:// 协议的图像一起使用可能是非法的画布操作。
    猜你喜欢
    • 2019-06-21
    • 2021-06-30
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多