HSPでClearTypeの実験

HSPで画像を3分の1(辺)に縮小するスクリプトを組みました。
それだけではつまらないのでClearTypeと同じ仕組みで縮小するサンプルを作りました。ClearTypeとはWindowsのフォントの描画で使われている技術です。ClearTypeについて詳しいのはこのサイト→ http://www.atmarkit.co.jp/fpc/xp_feature/cleartype/cleartype.html

それではスクリプトです。

screen 0
dialog "",16
if stat==0:dialog "キャンセルされました":end
picload refstr
sw=ginfo(12)
sh=ginfo(13)
title "Orginal Image size: "+sw+","+sh

buffer 1,3,3

screen 2,sw/3,sh/3
title "Default"
redraw 0
repeat sh/3
	cnt1=cnt
	repeat sw/3
		cnt2=cnt
		gsel 1
		gcopy 0,cnt2*3,cnt1*3,3,3
		clr=0
		repeat 9
			pget cnt\3,cnt/3
			clr+=(ginfo_r+ginfo_g+ginfo_b)/3
		loop
		gsel 2
		color clr/9,clr/9,clr/9
		pset cnt2,cnt1
	loop
loop
redraw 1

screen 3,sw/3,sh/3
title "ClearType"
redraw 0
repeat sh/3
	cnt1=cnt
	repeat sw/3
		cnt2=cnt
		gsel 1
		gcopy 0,cnt2*3,cnt1*3,3,3
		dim clr,3
		repeat 3
			cnt3=cnt
			repeat 3
				pget cnt3,cnt
				clr.cnt3+=(ginfo_r+ginfo_g+ginfo_b)/3
			loop
		loop
		gsel 3
		color clr.0/3,clr.1/3,clr.2/3
		;color clr.2/3,clr.1/3,clr.0/3//←きれいに表示されないときはこちらのコメントアウトを外して真上の行をコメントアウトする
		pset cnt2,cnt1
	loop
loop
redraw 1

スクリプトが開始されたときに、まずファイルオープンのダイアログが出ますのでお好きな画像を選択してください。
選択されるとすぐに縮小が開始されます。
縮小作業は画像サイズが大きいほど時間がかかります。CPU依存なので縮小なのでCPUをそれなりに食います。

スクリーン0は元画像表示用のウィンドウ、バッファー1は作業用バッファ、スクリーン2は標準の方法での縮小の表示用ウィンドウ、スクリーン3はClearTypeでの縮小の表示用ウィンドウです。

使う画像によってClearTypeの効果が出たり出なかったりします。どういった画像でよく効果が出るのかというのを考えてみるのもいいかもしれません。