atom-shell v0.22.3で、マニュアルを見ながら、Webサイトのスクリーンショットを撮ろうと思ったのですが、マニュアルがまだ更新されてないらしく、エラーになったので調査して修正したサンプルを作ってみました。
正しく動くサンプル
// 変数などの宣言
var TARGET_URL = "https://atom.io";
// モジュールの取り込み
var app = require('app');
var BrowserWindow = require('browser-window');
var fs = require('fs');
// メインウインドウを起動
var win = null;
app.on('ready', function(){
win = new BrowserWindow({width:1024, height:800});
win.loadUrl(TARGET_URL);
// ページがロード完了したらキャプチャする
win.webContents.on('did-finish-load',capture);
});
// キャプチャ処理
function capture() {
win.capturePage(function(img) {
console.log(img);
fs.writeFileSync('screenshot.png', img.toPng());
});
}
ちなみに、動かなかったのはマニュアルの「remote.md」の中の、スクリーンキャプチャを撮るサンプルでした。(2015/04/11時点))
原因は、capturePageのコールバック関数の引数が、NativeImageになったからでした。toPng()メソッドで、PNGデータを返す必要があります。