Dripです。
じっ さん、こんにちは。
grotateとgzoomは同じ拡大縮小が行える命令ですが、趣向性が大きく異なります。
gzoomはWindowsAPIを使用した画像精度重視の命令です。主に画像処理ソフト等に用いられ、
2倍の拡大値を指定すれば、ピクセルレベルで正確に2倍拡大された結果が出力されます。
またWin2000以上ではアンチエイリアスでスムージング処理された高画質な拡大縮小も行えます。
しかしこの命令はgrotateよりも鈍足で、gmodeの設定値も反映されません。
grotate命令はHSP独自の処理で拡大縮小を行います。
gmodeの値も反映される上に回転もかけることができ、更にgzoomよりかなり高速に処理されます。
この命令は主にゲーム用途に特化しており、複雑な画像変型が手軽かつ高速に処理できるのが
最大のメリットです。
しかし画像精度はかなり荒く、拡大値を正確に2倍の値を指定し、回転値を0に指定したとしても、
ピクセルが伸びたり、欠けたりするため、グラフィックソフト等、正確な画像処理が必要な
アプリケーションには不向きです。回転時も画像の荒さが目立ちます。
またご質問の「画像の鮮明さ」については、違いがありません。
ピクセルカラーに変更が加えられる事は一切無いため、画像そのものが薄暗くなったり、
色がぼけたりする事は一切有りません。(逆に鮮明さを変化させるためには、
鮮明さを変更するための画像処理プログラムを書く必要があります。)
速度は重視せず、品質重視の縮小を行いたい場合は、gzoom命令の使用をお勧めします。
アンチエイリアス処理もパラメータひとつで設定可能です。
画質の比較プログラムを用意しましたので、参考にしてみてください。
buffer 3,2048,256:font "MS P明朝",256,1:mes "美しい日本語":screen 0
pos 80,70:mes "gzoom命令による縮小"
pos 100,100:gzoom 512,64,3,0,0,2048,256,1
pos 80,240:mes "grotate命令による縮小"
gmode 0,2048,256:pos 356,300:grotate 3,0,0,0,512,64