4D v16

SVG_Filter_ColorMatrix

ホーム

 
4D v16
SVG_Filter_ColorMatrix

SVG_Filter_ColorMatrix 


 

SVG_Filter_ColorMatrix ( svgObject {; in ; result} {; type {; values}} ) -> 戻り値 
引数   説明
svgObject  SVG_Ref in SVGオブジェクト参照
in  テキスト in 原始フィルターに対しての入力を指定
result  テキスト in フィルターの出力結果の参照
type  テキスト in 行列演算の型を指定
values  テキスト in 変換行列に適用する数値
戻り値  SVG_Ref in 新しいカラー値のSVGオブジェクトに対する参照

説明   

SVG_Filter_ColorMatrix コマンドは、 svgObject 引数に渡したソース画像の各ピクセルに行列変換を行い、新しいカラー値を持った結果を生成します。

in 引数には、その前の‘result’ の値と同じ文字列を渡すか、以下の6つのキーワードのどれかを渡す事ができます:

  • SourceGraphic: フィルターを参照するターゲット要素(画像、図形、グループ等)を指定します。このキーワードはフィルター要素へのオリジナルの入力だったグラフィック要素を表します。
  • SourceAlpha: SourceGraphic の下にあるキャンバスを指定します。このキーワードはフィルター要素へのオリジナルの入力だったグラフィック要素を表します。
  • BackgroundImage: SourceGraphic の下にあるキャンバスを指定します。このキーワードは、フィルター要素が呼び出された時点の、フィルターリージョンの下のキャンバスのスナップショットを表します。
  • BackgroundAlpha: SourceGraphic. Same の下にあるキャンバスのアルファチャンネルを指定します。アルファチャンネルが使用されるという点以外は BackgroundImage と同じです。
  • FillPaint: ターゲット要素のfillプロパティで塗りつぶされたフィルターリージョンと等しいサイズをもつ疑似グラフィックを指定します。このキーワードは、フィルター効果のためのターゲット要素の'fill'プロパティの値を表します。
  • StrokePaint: ターゲット要素のfillプロパティで塗りつぶされたフィルターリージョンと等しいサイズをもつ疑似グラフィックを指定します。このキーワードは、フィルター効果のためのターゲット要素の'stroke'プロパティの値を表します。

何の値も渡さず、またこれが最初の原始フィルターであった場合は、SourceGraphic が入力として使用されます。何の値も渡さず、これが二つ目以降の原始フィルターであった場合は、このフィルターは前の原始フィルターの結果を入力として使用します。

result 引数には、フィルターの出力結果の参照を渡します。この出力は、コマンド内の同じ 'filter '要素内においてその後に使用する in 引数で参照する事ができます。何の値も渡さなかった場合、この出力は、次の原始フィルターが in 引数に何の値も渡されなかった場合にそのフィルターの入力としてのみ再使用することができます。

type 引数には、以下のキーワードのどれかを渡して行列変換の型を指定する事ができます:

  • saturate: RGBカラーの彩度を、values 引数に渡された0から1の実数値を使用して調整します。
  • hueRotate: 全てのRGBカラーチャンネルの色相行列を、values 引数にて指定された角度(度単位)だけ回転させます。
  • luminanceToAlpha: 赤、緑、青のチャンネルを輝度値へと変換します。RGBチャンネルは黒(0,0,0)に設定されます。
  • matrix: values 引数に渡された値の一覧を使用してカラーを設定します。既存のカラーとアルファチャンネルの組み合わせで出力でのそれぞれのチャンネルの値を指定します。

type 引数を渡さなかった場合、デフォルトで、値に matrix が指定されたのと同じ効果になります。

values 引数には、type 引数に渡したキーワードに基づいた数値を渡します。:

  • "matrix" キーワードの場合: 20の行列値のリストを渡して下さい。値は空白もしくはカンマで区切られます。
  • "saturate" キーワードの場合: 0から1の間の単一の実数値を渡します。仕様で許可されている値は0-1の間ですが、多数のブラウザではオーバーさちゅレーションのために1を超える値を受け付けています。
  • "hueRotate" キーワードの場合: (回転の角度を表す)単一の実数値を渡します。
  • "luminanceToAlpha" キーワードの場合: 数値は渡しません。この型では values 引数は使用されず、アルファチャンネルは破棄され、入力の輝度に等しい値で置き換えられます。

values 引数を渡さなかった場合、デフォルトの挙動は type 引数に渡したキーワードによって異なります:

  • "matrix" キーワードの場合: デフォルトで単位行列の値が使用されます。
  • "saturate" キーワードの場合: デフォルトで値は1になります(変化なし)。
  • "hueRotate" キーワードの場合: デフォルトでは値は0になります(変化なし)。
  • "luminanceToAlpha" キーワードの場合: デフォルトで、この値は使用されません。

注: Windows 環境下では、このコマンドを使用するためにはその前にDirect2Dを無効化しておく必要があります(SET DATABASE PARAMETERコマンド内の詳細の Direct2D disabled 定数を参照して下さい)。

例題  

 C_TEXT($Dom_filter;$Dom_node;$Dom_rect;$Dom_svg;$Txt_matrix)
 
 SVG_SET_OPTIONS(SVG_Get_options?+5)
 
 $Dom_svg:=SVG_New
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"Matrix")
 $Txt_matrix:=\
 ".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0"
 
 
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"matrix";$Txt_matrix)
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"Saturate")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"saturate";"1.5")
  // この値を渡すための別のシンタックス
  //$Dom_node:=SVG_Filter_ColorMatrix ($Dom_filter;"SourceGraphic";"";"saturate";String(1,5;"&xml"))
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"HueRotate90")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"hueRotate";"90")
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"LuminanceToAlpha")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"luminanceToAlpha")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;0;797;100;0;0;"none";"coral")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;100;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"Matrix")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;200;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"Saturate")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;300;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"HueRotate90")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;400;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"LuminanceToAlpha")
 
 SVG_New_text($Dom_svg;"No filter";110;10;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Matrix";110;110;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Saturate";110;210;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"HueRotate";110;310;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Luminance";110;410;"Verdana";60;Bold;-1;"black")
 
  //結果を見る
 SVGTool_SHOW_IN_VIEWER($Dom_svg)
 
  //SVG_SAVE_AS_TEXT($Dom_svg;System folder(Desktop)+"export.svg")
 
  //最後にメモリをクリアすることもお忘れなく
 SVG_CLEAR($Dom_svg)

 
プロパティ 

プロダクト: 4D
テーマ: カラー&グラデーション

Windows用です。

 
履歴 

初出: 4D v14

 
ARTICLE USAGE

SVGコンポーネント ( 4D v16)