私の拡張機能では、いくつかの画像を操作したいと思います。そのため、キャンバスを使用して生のピクセルを読み取ろうとしています。問題は、クロムコードで実行した場合 (img
はコンテンツドキュメント内の画像です):
var src = document.createElement("canvas");
src.width = img.naturalWidth;
src.height = img.naturalHeight;
var srcCtx = src.getContext("2d");
最後の行には、それgetContext
は関数ではないと書かれています。一方、実行すると (最初の行が異なることに注意してください!):
var src = img.ownerDocument.createElement("canvas");
src.width = img.naturalWidth;
src.height = img.naturalHeight;
var srcCtx = src.getContext("2d");
srcCtx.drawImage(img, 0, 0);
var src_data = srcCtx.getImageData(0, 0, src.width, src.height);
エラーは返さsrc_data
れませんが、空になります。Chrome コードから Web コンテンツにアクセスすることと関係があるのではないかと思います。なにか提案を?