HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0910
ます色を変える処理について6解決


ます

リンク

2006/9/10(Sun) 08:58:12|NO.2345

次のスクリプトで画面上の色を変換する処理をしているのですが、
うまく変換することができません。(縦に縞々が入る)
どう直せば変換できるでしょうか…。

mref VRAM,66 i=0 repeat ginfo_winx * ginfo_winy r = peek(VRAM,i+2) g = peek(VRAM,i+1) b = peek(VRAM,i) if r=$E7&g=$E3&b=$AD{ poke VRAM,i+2,0 poke VRAM,i+1,0 poke VRAM,i,255 } if r=0&g=0&b=0{ poke VRAM,i+2,255 poke VRAM,i+1,0 poke VRAM,i,0 } i+=3 loop redraw 1



この記事に返信する


Drip

リンク

2006/9/10(Sun) 11:03:02|NO.2346

Dripです。
 ますさん、こんにちは。
ますさんのスクリプトを試してみましたが縞々は入りませんが・・
以下のスクリプトはますさんのスクリプトを画面に反映させるスクリプトですが、
これを実行しても縞模様が入りますか?

mref VRAM,66 color $E7,$E3,$AD:boxf:gosub *a color:boxf:gosub *a stop *a dialog "処理開始。" i=0 //●●●●ますさんのスクリプトのコピー●●●● repeat ginfo_winx * ginfo_winy r = peek(VRAM,i+2) g = peek(VRAM,i+1) b = peek(VRAM,i) if r=$E7&g=$E3&b=$AD{ poke VRAM,i+2,0 poke VRAM,i+1,0 poke VRAM,i,255 } if r=0&g=0&b=0{ poke VRAM,i+2,255 poke VRAM,i+1,0 poke VRAM,i,0 } i+=3 loop redraw 1 //●●●●●●●●●●●●●●●●●●●●●● dialog "処理完了。" return
もしも縞模様が入らないのなら、ますさんの提示されたスクリプトは正常です。
もしも縞模様が入るのなら、ますさんのパソコンの環境が問題の可能性が考えられます。



ます

リンク

2006/9/10(Sun) 17:20:05|NO.2350

Dripさんのスクリプトでは、縞模様は入りませんでした。
本当は、バッファーに画像を読み込んで処理しています。
http://briefcase.yahoo.co.jp/bc/masu_hsp/lst?.dir=/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8&.order=&.view=l&.src=bc&.done=http%3a//briefcase.yahoo.co.jp/
↑のURIのファイルを解凍し、スクリプトと同じフォルダにコピー、
そしてスクリプトは

#const MASU_SIZE 57 screen 2,MASU_SIZE*14,MASU_SIZE repeat 14 pos cx,0 picload "images/"+cnt+".bmp",1 cx += MASU_SIZE loop mref VRAM,66 i=0 repeat ginfo_winx * ginfo_winy r = peek(VRAM,i+2) g = peek(VRAM,i+1) b = peek(VRAM,i) if r=$E7&g=$E3&b=$AD{ poke VRAM,i+2,0 poke VRAM,i+1,0 poke VRAM,i,255 } if r=0&g=0&b=0{ poke VRAM,i+2,255 poke VRAM,i+1,0 poke VRAM,i,0 } i+=3 loop redraw 1
で確認することができました。



Drip

リンク

2006/9/10(Sun) 18:42:24|NO.2351

Dripです。

 そのアルゴリズムは、その画面解像度には適合しません。
screen 2の行を

screen 2,MASU_SIZE*14+(MASU_SIZE*14\4),MASU_SIZE+(MASU_SIZE\4)
に差し替えて実行してみてください。理想的な処理が行われるはずです。
VRAMを扱う時は解像度にも注意してください。



ます

リンク

2006/9/10(Sun) 18:55:29|NO.2352

ありがとうございます!解決しました。
そういえば、前に建てたスレッドでそのようなことがあったのを思い出しました。
本当にありがとうございました。



KIMU

リンク

2006/9/10(Sun) 21:38:17|NO.2356

>screen 2,MASU_SIZE*14+(MASU_SIZE*14\4),MASU_SIZE+(MASU_SIZE\4)
Yは補正する必要無いような・・・

>ますさん
> if r=$E7&g=$E3&b=$AD{

これは、デスクトップが16ビット色だと、目的の動作にならないので注意
(Vramに渡された時点で色が変わっちゃう)



ます

リンク

2006/9/10(Sun) 21:58:09|NO.2357

>これは、デスクトップが16ビット色だと、目的の動作にならないので注意
そこの点は大丈夫です。使用するのは友達の間だけですので。



ONION software Copyright 1997-2018(c) All rights reserved.