1)私はbase64イメージデータを持っています。このイメージはキャンバス内にイメージとして描画するために使用されました。後で私はbase64としてそれを取り戻し、別のサービスに送り、画像(記憶装置の中に画像ファイルとして保存)を作成しました。キャンバスから間違ったピクセルデータを取得する
2)別のページでは、このイメージをbase64として読み込み、キャンバス内に戻します。すべてのレンダリング部分がよく見え、完全に機能しています。
しかし、Uint8ClampedArray
は(1)と(2)が異なっていました。それとも、これが期待される行動ですか?ここに私のコードです:
/** first part **/
var img = new Image();
img.src = 'data:image/jpeg;base64,' + data.result;
// wait for image finish load
// then draw image into canvas
img.onload = function() {
// draw cover image into canvas
// ctx is just canvas context
ctx.drawImage(img, 0, 0);
// clampedArray is just a normal variable
clampedArray = ctx.getImageData(0, 0, canvas.height, canvas.width);
console.log(clampedArray.data); //<----------------------- (1)
var base64Image = secret.toDataURL('image/jpeg');
// sending base64Image to another services
}
/** second part/another page **/
var img = new Image();
img.src = 'data:image/jpeg;base64,' + data.result;
img.onload = function() {
ctx.drawImage(img, 0, 0);
clampedArray = ctx.getImageData(0, 0, coverAfter.height,coverAfter.width);
console.log(clampedArray.data); //<----------------------- (2)
}
data.result
リターン同じbase64で、しかしとき、両方のI console.log
(1)及び(2)、私は別の結果を得た(Uint8ClampedArray
)
@Kaiidoありがとう、私はそれを見て、それは今のように唯一の方法のように思える –