私は2つのキャンバスを持っています。最初のキャンバスでイメージと2番目のキャンバスを描画する最初のキャンバスからイメージをコピーし、 "getImageData" e "putImageData"を使用して2番目のキャンバスに貼り付けますputImageDataは画像を「暗くする」
次のコードはコードの一部です私は自分のアプリケーション上にある。私は問題の原因ではなかった部分を切り取り、コンパクトにしました。 [javascriptに存在する画像が存在する必要があることに注意してください "image3.jpg"]。
var canvasLocal = document.getElementById('c'),
\t context = canvasLocal.getContext('2d'),
\t canvasToRender1 = document.getElementById('c2'),
\t ctx = canvasLocal.getContext("2d"),
\t canvasToRender1Ctx = canvasToRender1.getContext('2d'),
\t base_image = new Image();
base_image.src = 'imagem3.jpg';
base_image.onload = function() {
\t canvasLocal.width = canvasToRender1.width = base_image.width;
\t canvasLocal.height = canvasToRender1.height = base_image.height;
\t
\t context.drawImage(base_image, 0, 0);
\t \t
\t var imgData = ctx.getImageData(0, 0, base_image.width, base_image.height);
\t
\t canvasToRender1Ctx.putImageData(imgData,0,0);
}
<html>
<head>
\t <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
\t
</head>
<body>
\t
<canvas id="c"></canvas>
<canvas id="c2"></canvas>
<script src="javascript.js"></script>
</body>
</html>
問題は二キャンバス上の画像は元のことを暗く見えることである。
私はいくつかのブラウザでテストが、私だけ1問題がアンドロイドバージョンが6.0.1以上のアンドロイドのクロムであることがわかりました。 (クロムのバージョンは、テストしたすべての携帯電話の57.0.2987.132でした)。
更新:すでにこの問題をクロムに報告しています。 このリンクで確認してください:https://bugs.chromium.org/p/chromium/issues/detail?id=713632#
私は、Wで始まり、Fで終わり、中間にTである3文字のコメントがあります。私はあなたが回避策を持っていることを知っていますが、単に好奇心で、あなたはどんなイメージでも再現できますか?元の画像にカラープロファイルが埋め込まれていますか? – Kaiido
はいできます。そして、私はさまざまなサイズのキャンバスの異なるサイズのさまざまな画像でテストしました。それは本当に奇妙です。 google chrome guysがこれに言っているものを見てみましょう –