f8g

Tombloo + 部分的な画像処理

Tomblooの'Photo - Capture'のコードを読むと、selectRegionで範囲を選択できて、roundPosition、getElementPositionで要素の位置なんかを取得できるようです。それらを使って、部分的な画像処理をしてみます。
最新版が必要: image_processing.js

Tombloo.Service.extractors.register({
	name : 'Photo - Partial Filter',
	ICON : 'chrome://tombloo/skin/photo.png',
	check : function(ctx){
		return ctx.onImage;
	},
	extract : function(ctx){
		return succeed()
			// ページから範囲を選択
			.addCallback(function(){
				return selectRegion();
			})
			// 画像における選択範囲を取得
			.addCallback(function(region){
				var elmPos = roundPosition(getElementPosition(ctx.target));
				var top    = region.position.x - elmPos.x;
				var left   = region.position.y - elmPos.y;

				return {
					x: top,
					y: left,
					w: region.dimensions.w,
					h: region.dimensions.h
				};
			})
			// 画像処理
			.addCallback(function(region){
				var ip = ImageProcessing.load(ctx.imageURL);
				ip.merge(ip.clip(region.x, region.y, region.w, region.h).mosaic(10));
				return ip.data();
			})
			// 以下その他諸々
			.addCallback(function(image){
				return download(image, getTempDir(uriToFileName(ctx.href) + '.png'));
			})
			.addCallback(function(file){
				return {
					type : 'photo',
					item : ctx.title,
					file : file,
				};
			});
	}
});

http://media.tumblr.com/CAiSbEIuHcwc9a4uMo0DttZ2_500.png
手のあたりにモザイク。