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の効果が出たり出なかったりします。どういった画像でよく効果が出るのかというのを考えてみるのもいいかもしれません。