新機能

次のセクションでは、Windows GDI+ のいくつかの新機能について説明します。

グラデーション ブラシ

GDI+ は、図形、パス、領域を塗りつぶす線形グラデーションブラシとパス グラデーション ブラシを提供することで、Windows グラフィックス デバイス インターフェイス (GDI) を拡張します。 グラデーション ブラシを使用して、線、曲線、パスを描画することもできます。 線形グラデーション ブラシで図形を塗りつぶすと、図形間を移動すると色が徐々に変化します。 たとえば、図形の左端に青を指定し、右端に緑を指定して、水平方向のグラデーション ブラシを作成するとします。 水平方向のグラデーション ブラシでその図形を塗りつぶすと、左端から右端に移動すると、徐々に青から緑に変わります。 同様に、垂直方向のグラデーション ブラシで塗りつぶされた図形は、上から下に移動すると色が変わります。 次の図は、水平グラデーション ブラシで塗りつぶされた楕円と、斜めのグラデーション ブラシで塗りつぶされた領域を示しています。

水平方向のグラデーションで塗りつぶされた図形と、斜めのグラデーションで塗りつぶされた図形の図

パス グラデーション ブラシを使用して図形を塗りつぶす場合、図形の 1 つの部分から別の部分に移動するときに色がどのように変化するかを指定するためのさまざまなオプションがあります。 1 つのオプションは、図形の中央から外側の端に向かって移動する際にピクセルが徐々に一方の色から他方の色に変化するように、中心の色と境界の色を持つことです。 次の図は、パス グラデーション ブラシで塗りつぶされたパス (ベジエ スプラインのペアから作成) を示しています。

無限大記号に似た図形の図。半分が端のアクアと出会う青から塗りつぶされています

カーディナル スプライン

GDI+ では、GDI ではサポートされていないカーディナル スプラインがサポートされています。 カーディナル スプラインは、個々の曲線がつながって大きな曲線を形成する曲線のシーケンスです。 スプラインはポイントの配列で指定され、その配列内の各ポイントを通過します。 カーディナル スプラインは、配列内の各ポイントを滑らかに (鋭い角なし) 通過するため、直線を接続して作成されたパスよりも洗練されます。 次の図は、直線を接続して作成されたパスとカーディナル スプラインとして作成された 2 つのパスを示しています。

同じ 5 つの点を 2 回示す図:カーディナル スプラインで接続されると、もう 1 つの点が線分で接続されている

独立したパス オブジェクト

GDI では、パスはデバイス コンテキストに属し、パスは描画時に破棄されます。 GDI+ では、描画は Graphics オブジェクトによって実行され、Graphics オブジェクトとは別のいくつかの GraphicsPath オブジェクトを作成および維持できます。 GraphicsPath オブジェクトは描画アクションによって破棄されないため、同じ GraphicsPath オブジェクトを使用してパスを複数回描画できます。

変換と Matrix オブジェクト

GDI+ は Matrix オブジェクトを提供します。これは、変換 (回転、翻訳など) を簡単かつ柔軟にする強力なツールです。 マトリックス オブジェクトは、変換されるオブジェクトと組み合わせて動作します。 たとえば、GraphicsPath オブジェクトには、Matrix オブジェクトのアドレスを引数として受け取る GraphicsPath::Transform メソッドがあります。 1 つの 3×3 行列で、1 つの変換または一連の変換を格納できます。 次の図は、2 つの変換のシーケンス (最初のスケール、次に回転) の前後のパスを示しています。

図形の輪郭を示す図、次に同じ輪郭が狭く、回転している

スケーラブルなリージョン

GDI+ は、リージョンのサポートにより、GDI で大幅に拡張されます。 GDI では、領域はデバイス座標に格納され、領域に適用できる変換は変換のみです。 GDI+ は、領域をワールド座標に格納し、変換マトリックスに格納できる任意の変換 (スケーリングなど) を行う領域を許可します。 次の図は、スケール、回転、および変換という 3 つの変換のシーケンスの前後の領域を示しています。

座標軸を中心にした図形を示す図。次に、同じ図形が大きく、回転され、右に翻訳されている

アルファ ブレンド

前の図では、変換された領域 (ハッチ ブラシで塗りつぶされた) を通して、変換されていない領域 (赤で塗りつぶされた) を確認できることに注意してください。 これは、GDI+ でサポートされているアルファ ブレンドによって可能になります。 アルファ ブレンドでは、塗りつぶしの色の透明度を指定できます。 透明な色は背景色とブレンドされます。塗りつぶしの色を透明にすると、背景の表示が多くなります。 次の図は、異なる透明度レベルで同じ色 (赤) で塗りつぶされている 4 つの省略記号を示しています。

半透明の四角形が重なるさまざまな透明度の 4 つの楕円を示す図

複数の画像形式のサポート

GDI+ には Image、BitmapMetafile の各クラスが用意されており、さまざまな形式で画像を読み込み、保存、操作できます。 次の形式がサポートされています。

  • BMP
  • グラフィックス交換形式 (GIF)
  • JPEG
  • Exif
  • PNG
  • TIFF
  • ICON
  • WMF
  • EMF