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 )