新しく発言する  EXIT  インデックスへ
!更新、COLOR色指標チェッカー5

  !更新、COLOR 色指標チェッカー5 SECOND 2008/01/07 22:16:38  (修正2回)
  似たようなものですが、以前作りました。 荒田浩二 2008/01/09 02:02:14 

Re: !更新、COLOR 色指標チェッカー5  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/01/09 02:02:14
似たようなものですが、以前作りました。

情報を表示させたい色をクリック。再クリックで消去。右クリックで終了。

左は COLOR MODE が "REGULAR" の色指標とR,G,Bの強度。
中央は COLOR MODE が "NATIVE" の時の色指標と色強度を255倍した整数。
右は、それを16進,2進表現したものです。

REM ** 色情報 **
DECLARE EXTERNAL PICTURE rect
DECLARE FUNCTION regular_to_native
DIM cm(3),cn$(3),c8bit(3)
MAT READ cn$
DATA "R","G","B"
LET xp=8
LET yp=32
SET BITMAP SIZE 120*xp+1,20*yp+1 ! 961,641
SET WINDOW 0,xp,yp,0
SET TEXT HEIGHT 0.56
SET TEXT JUSTIFY "CENTER","HALF"
DRAW color_index
LET s=-1
DO
DO
MOUSE POLL x,y,left,right
LOOP UNTIL left=0 AND right=0
DO
MOUSE POLL x,y,left,right
LOOP UNTIL left=1 OR right=1
IF right=1 THEN STOP ! 右クリックで終了
LET col=INT(y)*xp+INT(x)
IF col<>s THEN
DRAW rect(col) WITH SCALE(2/3,8)*SHIFT(xp/2-7/3,yp/2-4)
DRAW rect(col) WITH SCALE(2/3,8)*SHIFT(xp/2-1/3,yp/2-4)
DRAW rect(col) WITH SCALE(2/3,8)*SHIFT(xp/2+5/3,yp/2-4)
PLOT TEXT ,AT xp/2-2,yp/2-4+0.5 : STR$(col)
ASK COLOR MIX(col) cm(1),cm(2),cm(3) ! R,G,B
FOR i=1 TO 3
PLOT TEXT ,AT xp/2-2,yp/2+i+0.5 ,USING " # <.####": cn$(i),STR$(ROUND(cm(i),4))
LET c8bit(i)=ROUND((2^8-1)*cm(i),0)
PLOT TEXT ,AT xp/2,yp/2+i+0.5 ,USING "# >##": cn$(i),STR$(c8bit(i))
LET c24bit=c24bit+2^(8*(i-1))*c8bit(i)
PLOT TEXT ,AT xp/2+2,yp/2+i+0.5 ,USING ">#######": BSTR$(c8bit(i),2)
NEXT i
PLOT TEXT ,AT xp/2,yp/2-4+0.5 : STR$(c24bit) ! regular_to_native(col)
PLOT TEXT ,AT xp/2+2,yp/2-4+0.5 : BSTR$(c24bit,16)
LET c24bit=0
LET s=col
ELSE ! 同じ色の再クリックで消去
DRAW color_index
LET s=-1
END IF
LOOP
PICTURE color_index
FOR j=0 TO yp-1
FOR i=0 TO xp-1
LET c=j*xp+i
DRAW rect(c) WITH SHIFT(i,j)
PLOT TEXT ,AT i+0.5,j+0.5 : STR$(c)
NEXT i
NEXT j
END PICTURE
FUNCTION regular_to_native(c)
ASK COLOR MIX(c) fr,fg,fb
LET regular_to_native=ROUND((2^8-1)*fr)+2^8*ROUND((2^8-1)*fg)+2^16*ROUND((2^8-1)*fb)
END FUNCTION
END
EXTERNAL PICTURE rect(c) ! 長方形の塗りつぶし
SET AREA COLOR c
PLOT AREA : 0,0;1,0;1,1;0,1
END PICTURE

   └!面白いプログラムで、イジッテミマシタ、勝... SECOND 2008/01/09 08:33:37  (修正5回)
    └"B"が上位桁のようです。 荒田浩二 2008/01/10 09:32:45  (修正1回)
     └おこられないかと、ひやひやしていましたの... SECOND 2008/01/10 22:51:58 
      └白石先生、お願いします。 SECOND 2008/01/11 06:05:14 
       └メモリ上でRGB順になります。 山中和義 2008/01/11 07:58:11 
        └ありがとうございました、直します。 SECOND 2008/01/11 08:52:51  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。