ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5.0 を使用してグラフィックを作成する賢い方法_PHP チュートリアル
この記事では、PHP を使用してオブジェクト指向のグラフィックス レイヤーを構築する方法を説明します。オブジェクト指向システムを使用すると、標準の PHP ライブラリで提供される基本機能を使用するよりもはるかに簡単に複雑なグラフィックスを構築できます。
私はグラフィック編集プログラムを 2 つのカテゴリに分類します。1 つはピクセルごとに画像を描画する描画プログラム、もう 1 つは線、楕円、四角形などのオブジェクトのセットを提供する描画プログラムです。これらのオブジェクトを使用して大きな画像を結合できます。 、JPEGなど。ペイント プログラムはピクセル レベルの制御に最適です。ただし、ビジネス グラフィックの場合、ほとんどのグラフィックは長方形、線、楕円で構成されているため、描画プログラムを使用する方が良い方法です。
PHP に組み込まれている基本的な描画操作は、描画プログラムと非常によく似ています。これらは画像を描画する場合には非常に強力ですが、画像をオブジェクトのコレクションにする場合には適していません。この記事では、PHP グラフィックス ライブラリに基づいてオブジェクト指向グラフィックス ライブラリを構築する方法を説明します。 PHP V5 で提供されるオブジェクト指向拡張機能を使用します。
オブジェクト指向グラフィックスのサポートにより、グラフィックス コードの理解と保守が非常に簡単になります。また、単一のグラフィック ソースから複数の種類のメディア (Flash ムービー、SVG など) にグラフィックを合成する必要がある場合もあります。
目標
グラフィカル オブジェクト ライブラリの作成には、次の 3 つの主な目標が含まれます:
基本操作からオブジェクトに切り替えます
このライブラリは、imageline、imagefilledrectangle、その他のグラフィック関数を使用するのではなく、画像の作成に使用できる Line、Rectangle、Oval などのオブジェクトを提供する必要があります。また、より大きく複雑なオブジェクトやグループ オブジェクトを構築する機能もサポートする必要があります。
Z値で並べ替え可能
描画プログラムを使用すると、ペインターはグラフィック オブジェクトを描画面で上下に移動できます。このライブラリは、オブジェクトを他のオブジェクトの前または後ろに配置する機能をサポートする必要があります。このライブラリは、描画面からのオブジェクトの高さを定義する Z 値を使用します。 Z 値が大きいオブジェクトは後で描画され、Z 値が小さいオブジェクトの上に表示されます。
ビューポート変換を提供します
通常、データの座標空間は画像の座標空間とは異なります。 PHP の基本的なグラフィックス操作は、画像の座標平面上で動作します。グラフィックス ライブラリは、プログラマが使い慣れた座標系でグラフィックスを指定し、任意の画像サイズに合わせて自動的に拡大縮小できるように、ビューポート仕様をサポートする必要があります。
ここには非常に多くの機能があるため、コードを段階的に作成して、コードがどのように機能を追加するかを示します。
基礎知識
まず、グラフィックス環境オブジェクトと、Line クラスを使用して実装される GraphicsObject と呼ばれるインターフェイスを見てみましょう。その機能は線を描画することです。 UML を図 1 に示します。
図 1. グラフィカル環境とグラフィック オブジェクト インターフェイス
GraphicsEnvironment クラスは、グラフィックス オブジェクトと、幅と高さを含む色のセットを格納します。 saveAsPng メソッドは、現在の画像を指定されたファイルに出力します。
GraphicsObject は、グラフィックス オブジェクトが使用する必要があるインターフェイスです。このインターフェイスの使用を開始するには、render メソッドを使用してオブジェクトを描画するだけです。これは、開始と終了の X 値、開始と終了の Y 値の 4 つの座標を利用する Line クラスによって実装されます。色もあります。 render が呼び出されると、このオブジェクトは名前で指定された色で sx,sy から ex,ey までの線を描画します。
このライブラリのコードをリスト 1 に示します。
リスト1.基本的なグラフィックスライブラリ
リーリー |
リーリー |