
グラデーションについて紹介します。
海外のサイトではグラデーションの見本をみかけますが、日本ではあまり解説したサイトはないようです。まあ、グラデーションはグラッフィックスアプリで簡単にできるので、あえてPostScriptで作る必要はないかもしれません。
グラデーションはシェーディングパターンで描画する処理です。言語レベル3からの機能です。
シェーディングパターンは次の7種類あります。
1:関数シェーディング
2:線形シェーディング
3:放射シェーディング
4:自由形式のグローシェーディングによる三角メッシュ
5:ラティス形式のグローシェーディングによる三角メッシュ
6:クーンズパッチメッシュ
7:テンソル積パッチメッシュ
ここでは2〜5までのシェーディングについてサンプルで説明します。
線形シェーディングは1方向のグラデーションです。
開始色と終了色とその座標や、割合(バランス)などを設定できます。
★が付いたパラメータは変更可能です。色々と変えてみてください。
コード内の<< >>は本来英語記号ですが、ここでは入力できないため日本語記号<< >>を使用しています

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:線形グラデーション 0 0 240 240 rectstroke % 画面囲み 120 120 translate % 座標の原点を中央に移動 % ===== グラデーションで塗りつぶされる図形を描く ====== newpath -100 100 moveto 0 -200 rlineto 200 0 rlineto 0 200 rlineto closepath gsave % グラッフィクス状態を保存 clip % クリップする << % シェーディングの辞書定義 /ShadingType 2 % 線形シェーディング /ColorSpace /DeviceRGB % ★色空間定義 /DeviceGray /DeviceCMYK /Background [ 1 1 1 ] % ★(オプション)背景色 % ★軸の開始点と終了点の座標を指定 [ x0 y0 x1 y1 ] /Coords [ 0 -100 0 100 ] %(オプション)シェーディング領域の指定 [x0 y0 x1 y1 ] %/BBox [-100 -100 100 100 ] % ★(オプション)開始・終了点から色を延長する falseがデフォルト /Extend [ false false ] /Function << % 関数辞書の定義 /FunctionType 2 % 指数補間法 %(オプション)バンド幅/1:デフォルト [ 0 5 ] バンド幅が粗くなる /Domain [ 0 1 ] /C0 [ 1 0 1 ] % ★開始色 マゼンタ /C1 [ 0 1 1 ] % ★終了色 シアン /N 1 % ★グラデーションのバランス 1(デフォルト):標準 0~100 >> >> shfill % グラデーションで塗りつぶす grestore % グラッフィクス状態を戻す |

グレースケールの場合下記の3行を変更します。
/ColorSpace /DeviceGray % 色空間定義
/C0 [ 1 ] % 開始色 白
/C1 [ 0 ] % 終了色 黒

CMYKの場合下記の3行を変更します。
/ColorSpace /DeviceCMYK
/C0 [ 0 1 0 0 ] % 開始色 マゼンタ
/C1 [ 1 0 0 0 ] % 終了色 シアン

グラデーションの方向と色を変えます
/Coords [ -100 0 100 0 ] % 軸の開始点と終了点の座標を指定 [x0 y0 x1 y1 ]
/C0 [ 1 1 0 ] % 開始色 イエロー
/C1 [ 1 0 1 ] % 終了色 マゼンタ

斜め方向のグラデーション
/Coords [ -100 -100 100 100 ]
/C0 [ 1 0 0 ] % 開始色 レッド
/C1 [ 1 1 0 ] % 終了色 イエロー

/Coords [ -100 0 50 0 ] % 終了点を短くしています。
(目盛りは参考のため付けています。)

/Coords [ -100 0 50 0 ]
/Extend [ false true ] % 終了点から色を延長しています。

/N 2 % 開始色のバランス大きくしています。
(0および負数は指定できません)

/N .5 % 終了色のバランス大きくしています。

2つのグラデーションを配置した3色のグラデーションです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:線形グラデーション 0 0 240 240 rectstroke % 画面囲み 120 120 translate % 座標の原点を中央に移動 % ===== グラデーションで塗りつぶされる図形を描く ====== newpath -100 100 moveto 0 -200 rlineto 200 0 rlineto 0 200 rlineto closepath gsave % グラッフィクス状態を保存 clip % クリップする << % シェーディングの辞書定義 /ShadingType 2 % 線形シェーディング /ColorSpace /DeviceRGB % 色空間定義 /Background [ 1 1 1 ] % (オプション)背景色 /Coords [ 0 0 0 100 ] % 軸の開始点と終了点の座標を指定 [ x0 y0 x1 y1 ] % (オプション)開始・終了点から色を延長する falseがデフォルト /Extend [ false false ] /Function << % 関数辞書の定義 /FunctionType 2 % 指数補間法 /Domain [ 0 1 ] %(オプション)バンド幅/1:デフォルト /C0 [ 1 0 1 ] % 開始色 マゼンタ /C1 [ 0 1 1 ] % 終了色 シアン /N 1 % グラデーションのバランス % 1(デフォルト):標準 0~100/10:61% 20:84.7% >> >> shfill % グラデーションで塗りつぶす << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [ 0 -100 0 0 ] /Extend [ false false ] /Function << /FunctionType 2 /Domain [ 0 1 ] /C0 [ 1 1 0 ] % 開始色 イエロー /C1 [ 1 0 1 ] % 終了色 マゼンタ /N 1 >> >> shfill grestore % グラッフィクス状態を戻す |

上の3色グラデーションを調整してテキストに適用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:線形グラデーション 0 0 240 240 rectstroke % 画面囲み 120 120 translate % 座標の原点を中央に移動 % ===== グラデーションで塗りつぶされる図形を描く ====== newpath -100 -12 moveto % 座標の移動 /Helvetica-Bold findfont % Helvetica-Boldのfont辞書を取得 48 scalefont setfont % 48倍に拡大しカレントフォントに設定 (SAMPLE) true charpath clip % 文字をアウトラインにしクリップする << % シェーディングの辞書定義 /ShadingType 2 % 線形シェーディング /ColorSpace /DeviceRGB % 色空間定義 /Background [ 1 1 1 ] % (オプション)背景色 /Coords [ 0 0 0 24 ] % 軸の開始点と終了点の座標を指定 [ x0 y0 x1 y1 ] /Extend [ false false ] % (オプション)開始・終了点から色を延長する /Function << % 関数辞書の定義 /FunctionType 2 % 指数補間法 /Domain [ 0 1 ] %(オプション)バンド幅/1:デフォルト /C0 [ 1 0 1 ] % 開始色 マゼンタ /C1 [ 0 1 1 ] % 終了色 シアン /N 1 % グラデーションのバランス >> >> shfill % グラデーションで塗りつぶす << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [ 0 -12 0 0 ] /Extend [ false false ] /Function << /FunctionType 2 /Domain [ 0 1 ] /C0 [ 1 1 0 ] % 開始色 イエロー /C1 [ 1 0 1 ] % 終了色 マゼンタ /N 1 >> >> shfill |
コメント