DXライブラリは拡大は普通だけど、縮小は思った通りにならない。
DX_DRAWMODE_NEAREST | ネアレストネイバー法で描画 | 0 |
DX_DRAWMODE_BILINEAR | バイリニア法で描画する | 1 |
DX_DRAWMODE_ANISOTROPIC | 異方性フィルタリング法で描画する | 2 |
DX_DRAWMODE_OTHER | それ以外 |
SetDrawMode()関数でこいつらを指定しても、縮小はガッタガタでがっくし。
2Dだけどビデオカードの3D機能で描画しているので、その辺の設定次第かと思い色々と弄ってみたものの変わらず。
完全に諦めてた私。
ところが、昨日この腐れプログラムをネットブックで動かしてみたら、ガウスフィルターが効かない場面が多々あると発覚し、その問題を解決しようとリファレンスを読んでいたところ、2,4,8分の1単位でなら綺麗に縮小できる事が発覚。
ってかチャンと読めという話。
縦600ドットの画像を縦800ドットに一回拡大して
GraphFilter( Handle, DX_GRAPH_FILTER_DOWN_SCALE, 8 ) ;
といたした所~~
綺麗になった。
thum_tmp=MakeScreen(1200,1000,false);
SetDrawScreen(thum_tmp);
save_thum1=LoadGraph( "save01.bmp" );
DrawExtendGraphF( 0 , 0 , 1067 ,800 , save_thum1 , false ) ;
GraphFilter( thum_tmp, DX_GRAPH_FILTER_DOWN_SCALE, 8 ) ;
少し大きめにMakeScreenで最初にthum_tmpを作っても、GraphFilterを使うとthum_tmpのサイズも8分の1になってるのかなこれ?
まぁその都度DeleteGraphするからどうでもいいかな?
0 件のコメント:
コメントを投稿