4DカラーをSVG用のRGB文字列に変換する
日付 | 2009/08/10 |
---|---|
ID | 75865 (英語原文参照) |
バージョン | 11 |
プラットフォーム | Mac & Win |
4Dは、インデックス(1-256)あるいはRGB倍長整数でカラーを表現するのが一般的ですが、4D SVGを使用するのであれば、RGB文字列が便利です。次のコードは、倍長整数SVG対応の文字列に変換するためのものです。
`Util_RGBToRGBString( RGB_L ) -> RGB_T C_TEXT($0;$RGBStr_T) C_LONGINT($RGB_L;$1) C_LONGINT($RGB_L;$Red_L;$Green_L;$Blue_L) $RGB_L:=$1 ` Get the individual RGB values. $Red_L:=(($RGB_L >> 16) & 0x00FF) ` get the red byte, 0..255 $Green_L:=(($RGB_L >> 8) & 0x00FF) ` get the green byte, 0..255 $Blue_L:=($RGB_L & 0x00FF) ` get the blue byte, 0..255 $RGBStr_T:="rgb("+String($Red_L)+","+String($Green_L)+","+String($Blue_L)+")" $0:=$RGBStr_T
上記メソッドは、倍長整数RGBを入力値として受け入れます。カラーインデックスを変換するのであれば、はじめにC_LONGINT($ColorNdx_L;$RGB_L) C_TEXT($RGB_T) $ColorNdx_L:=122 ` Any value from 1-256 $RGB_L:=Util_ColorIndexToRGB( $ColorNdx_L ) $RGB_T:=Util_RGBToRGBString( $RGB_L )