このPhantomJSスクリプトからの出力は240x320ピクセルであるべきではありませんか?大きなデフォルトサイズの画像を取得しています。clipRect()は正しいサイズの画像をレンダリングするように見えますが、実際のブラウザウィンドウサイズを反映するためにページのレスポンシブコンテンツが必要です。
var page = require('webpage').create();
page.viewportSize = { width: 240, height: 320 };
page.open('http://cnn.com', function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
} else {
window.setTimeout(function () {
page.render('default.png');
phantom.exit();
}, 200);
}
});