私は画像を 'jpg'として(navigator.camera.getPicture(resolve, reject, {...encodingType: 0,...}
)を使用して画像をキャプチャし、拡張子を '.png'として変更して別の場所に移動します現在、サイズを変更しようとしています。しかし、画像をロードしようとすると、ロードされずにDOM7009: Unable to decode image at url: '.../myimage.png' to MIME 'image/png'
がスローされます。.jpg画像が.jpg画像では機能しません。
イメージが「.png」としてキャプチャされていても、元のイメージが「.jpeg」で、拡張子が「.png」に変更されている場合は正しく動作します。私はイメージをロードしようとする前に以下のことをします。
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
let image = new Image();
image.src = fileSystemPath + imageName // I get : ms-appdata:///local/randomgeneratedID.png
image.onload = function() {
...
ctx.drawImage(image, 0, 0, myHeight, myWidth);
callback(canvas.toDataURL("image/png", 0.9))
...
}
問題は、画像がまったくロードされていないということです。私console.loggedはimage.onload
の機能の中にあり、表示されません。それが '.png'ファイルをロードする理由はわかりませんが、 '.jpg'ファイルは '.png'という名前に変更されていません。
お返事ありがとうございます。 .pngは元の.jpgよりも小さくなっています(ファイルを移動するためにコードバの 'moveTo()'メソッドを使用します)。私はimage.onloadを実行する前に、image.srcに完全なパスを割り当てていますが、これはiOSでもうまくいきます。あなたが言ったように、画像を読み込んだ後にsrcを割り当てようとしましたが、残念ながらアプリ内に古い画像が読み込まれずクラッシュすることはありません。 –
イメージが読み込まれた後(残念なことに起こらない)、キャンバスコンテキストで読み込まれたイメージを描画することによって、サイズ変更が行われます。私は 'getDataUrl'を実行して、イメージURLからBase64文字列を取得します。 –
"あなたは残念ながらアプリ内の古いイメージを読み込むことができず、クラッシュします。 "だから、それはあなたがキャプチャする新しい画像のためにうまくいきますか?そして「クラッシュ」の意味はどういう意味ですか? – curveball