[過去ログ] Delphiゲームプログラミング相談室 (976レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
305
(2): 288 [sage] 03/06/03 20:41 ID:dV3uJJSo(1) AAS
>>296
296(5): 290 [sage] 03/05/25 17:23 ID:ll42N4KR(1/3) AAS
>>295
ソース拝見いたしました。
> ・For文で回してる処理が非常に遅い(scanlineのせい?)
マスクを作るプロシージャにて、パレットコードを String に変換している
為と思われます。

procedure TForm1.make_mask(sBmp:TBitmap);
var
i,j, x : Integer;
p : PDWORD;
mp : PBYTEArray;
begin
for i:=0 to sBmp.Height-1 do begin
p := sBmp.ScanLine[i]; // ビットマップ座標(0,i)のポインタ
mp := mask.ScanLine[i];
x :=0;
for j:=0 to sBmp.Width-1 do begin
if p^ = $00000000 then //if str_mask = '000' then
begin
mp[x]:=$ff; mp[x+1]:=$ff; mp[x+2]:=$ff; // B=255 , G=255 , R=255
end else begin
mp[x]:=$00; mp[x+1]:=$00; mp[x+2]:=$00; // B=0 , G=0 , R=0
end;
Inc(p); Inc(x,3);
end;
end;
end;
……と、いうのは如何でしょう?( PDWORD よりも PDCHARArray の方が
わかりやすいでしょうか)
レス遅れましたが、ありがとうございました。
お陰で苦にならない速度で描画出来るように(´ー`)

現在、立ち絵やシナリオウィンドウにアンチエイリアスを
かける処理を考えてるんですが、単純にぼかしをかけた
マスク画像を用意して、それを重ねるのが一番簡単でしょうか?
ぼかしをかけるサンプルを適当に拾って弄ってるんですが、
なんか実行時に使うと、やたらと時間がかかるので…
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s