Tips

4DカラーをSVG用のRGB文字列に変換する

日付2009/08/10
ID75865 (英語原文参照)
バージョン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 )