私はデータに変換し、次いで、キャンバスに画像を置くコードを発見しました。私の考えは、セレンのevalコマンドを使用してこれを呼び出すことでしたが、私のテストではtoDataURLはセキュリティエラー1000を投げています。そのエラーがなければ解決策に近いと思われます。
var data, canvas, ctx;
var img = new Image();
img = document.getElementById("yourimageID");
canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0); // everything works up to here
data = canvas.toDataURL(); // this fails ***
var base64Img = data.replace(/^data:image\/(png|jpg);base64,/, "");
いくつかの調査を行っていますが、画像が別のドメインからのものである場合、toDataURLを使用することはできません。しかし、私はページを保存してこのコードを試してみても、画像そのものとこのスクリプト以外のすべてを取り除いていました。例えば
(index.htmlを):
<html><head></head><body>
<img src="local/hard/disk/img.jpg" id="yourimageID">
<script>
// script from above
</script>
</body></html>
img.jpgとのindex.htmlはまだセキュリティエラー1000年を取得し、ローカルにFirefoxでページを開いて、ローカルに保存されます!
それは長いですが、私は解決策を見つけましたか? – johnjohn
いいえ、私は.. –
私はこれのための解決策を持っています。私はSeleniumのuserscript.jsを拡張しました。 userpref.jsでスクリーンショットをキャプチャするFirefoxの権利を拡張し、Scott Szretterと同様のものを使用して画面をキャプチャし、画像データをサーバに送信しました。 – powtac