R値・G値・B値の求め方 大久保博史 2004/01/11 13:53:26 └askpixelvalueで求まるのはその点の色に対応... 白石和夫 2004/01/11 17:57:07 └ご回答ありがとうございました。次のように... 大久保博史 2004/01/11 19:07:18
R値・G値・B値の求め方 大久保博史 2004/01/11 13:53:26 ツリーへ
R値・G値・B値の求め方 |
返事を書く |
大久保博史 2004/01/11 13:53:26 | |
ASK PIXEL VALUE (x,y) a を使うと任意の点の色指標をaに代入できますが、次の picture mas plot area : 0,0;0,.01;.01,.01;.01,0 end picture for x=0 to 1 step 0.01 for y=0 to 1 step 0.01 set color mix(iro)y,.5,x set area color iro draw mas with shift(x,y) next y next x get point: x, y ask pixel value (x,y) a print a end で使うと a=-1 になってしまいます。 上で出力されるような連続した色の、任意の点のR値,G値,B値を求めるにはどうすればいいでしょうか。どなたか教えてください。 |
└askpixelvalueで求まるのはその点の色に対応... 白石和夫 2004/01/11 17:57:07 ツリーへ
Re: R値・G値・B値の求め方 |
返事を書く |
白石和夫 2004/01/11 17:57:07 | |
ask pixel value で求まるのはその点の色に対応する色指標です。色指標に対する色が変化してしまっているので,色に対する色指標が存在しないので-1になります。 JIS規格の範囲内で処理するためには,まず ASK MAX COLOR n を実行してシステムで利用可能な色指標の最大値を取得します。十進basicの現バージョンではこの数は必ず255です。255以下の各色指標に対してSET COLOR MIX で任意の色を割り当てることができます。 ただし,画面の初期色が色指標0なので,色指標0に対する色は変えないほうがいいでしょう。 SET POINT STYLE 1 ASK MAX COLOR n SET WINDOW 0,n,0,n FOR i=1 TO n SET COLOR MIX (i) i/n,1,1-i/n SET POINT COLOR i PLOT POINTS: i,i NEXT i FOR i=1 TO n ASK PIXEL VALUE (i,i) v PRINT i,v NEXT i END JISを無視してよいのであれば,SET COLOR MODE "NATIVE" を実行して,色指標=色(=Windowsの色番号)の状態で使ってください。Windowsの色番号は,RGB各色を0から255の段階で表現して,r + 256*g + 65536*b です。 |
└ご回答ありがとうございました。次のように... 大久保博史 2004/01/11 19:07:18 ツリーへ
Re: askpixelvalueで求まるのはその点の色に対応... |
返事を書く |
大久保博史 2004/01/11 19:07:18 | |
ご回答ありがとうございました。 次のようになりました。 set color mode "native" picture mas plot area : 0,0;0,.01;.01,.01;.01,0 end picture for x=0 to 1 step 0.01 for y=0 to 1 step 0.01 set area color COLORINDEX(y,.5,x) draw mas with shift(x,y) next y next x get point: x, y ask pixel value (x,y) a print a let b=int(a/65536) let g=int((a-b*65536)/256) let r=mod(mod(a,65536),256) print "r g b=";r;g;b end |