Image は Magick++ における主要なオブジェクトであり、単一の画像フレームを表します ( 設計 を参照)。画像シーケンスや、複数の画像フレームで構成される画像 (例: GIF、TIFF、MIFF、Postscript、MNG) を操作するには、STL インターフェース を必ず使用する必要があります。マルチフレーム画像の個々のフレームは、ファイル名の末尾に配列スタイルの表記を追加することで要求できます (例: "animation.gif[3]" は GIF アニメーションの 4 番目のフレームを取得します)。さまざまな画像操作を画像に適用できます。操作の動作に影響を与えるために、画像に属性を設定できます。Pixels クラスは、画像ピクセルへの低レベルアクセスを提供します。便宜上、以下を含めるだけで<Magick++.h>Magick++ API 全体を使用するのに十分です。Magick++ API は Magick 名前空間内に含まれているため、各クラス/列挙名に接頭辞 "Magick:" を追加するか、ステートメント "using namespace Magick;" を追加する必要があります。Magick++.hヘッダーを含めた後。
Image オブジェクトを割り当てる推奨される方法は、自動割り当て (スタック上) です。Magick++ がすべての大きなデータオブジェクト (実際の画像データなど) をヒープから割り当てるため、スタック上に Image オブジェクトを割り当ててもスタックが過度に大きくなる心配はありません。自動割り当ての使用は、明示的な割り当て (new を介した割り当て) よりもエラーが発生しにくく、メモリリークを回避するために C++ スコープルールを使用できるため、推奨されます。自動割り当てを使用すると、Magick++ オブジェクトは C++ の組み込みデータ型 (例: 'int ') と同様に代入およびコピーできるようになり、明確で読みやすいコードになります。自動割り当てを使用すると、例外がスローされた場合に、割り当てのスコープを過ぎてスタックが巻き戻されるとオブジェクトが自動的に割り当て解除されるため (new を介して割り当てられたオブジェクトの場合ではない)、自然に例外安全なコードになります。
Image は非常に使いやすいです。たとえば、以下は画像ファイルを読み込み、切り取り、新しいファイルに書き込むプログラムのソースです (例外処理はオプションですが、強く推奨されます)
#include <Magick++.h> #include <iostream> using namespace std; using namespace Magick; int main(int argc,char **argv) { InitializeMagick(*argv); // Construct the image object. Separating image construction from the // the read operation ensures that a failure to read the image file // doesn't render the image object useless. Image image; try { // Read a file into image object image.read( "girl.gif" ); // Crop the image to specified size (width, height, xOffset, yOffset) image.crop( Geometry(100,100, 100, 100) ); // Write the image to a file image.write( "x.gif" ); } catch( Exception &error_ ) { cout << "Caught exception: " << error_.what() << endl; return 1; } return 0; }以下は、Magick++ の効率的な参照カウント代入およびコピーコンストラクタ操作の使用を示すプログラムのソースです。これにより、メモリの使用を最小限に抑え、不要なコピー操作を排除します (Image オブジェクトを効率的に代入し、コンテナにコピーできるようにします)。プログラムは以下を実行します。
#include <Magick++.h> #include <iostream> using namespace std; using namespace Magick; int main(int argc,char **argv) { InitializeMagick(*argv); Image master("horse.jpg"); Image second = master; second.resize("640x480"); Image third = master; third.resize("800x600"); second.write("horse640x480.jpg"); third.write("horse800x600.jpg"); return 0; }操作全体を通して、メモリに存在する画像は最大 3 つであり、画像データはコピーされません。
以下は、中央に赤いピクセルがある 100 x 100 ピクセルの白い画像を作成し、それをファイルに書き込む別の簡単なプログラムのソースです。
#include <Magick++.h> using namespace std; using namespace Magick; int main(int argc,char **argv) { InitializeMagick(*argv); Image image( "100x100", "white" ); image.pixelColor( 49, 49, "red" ); image.write( "red_pixel.png" ); return 0; }カラー画像をグレースケールに変更する場合は、以下の行を追加できます。
image.quantizeColorSpace( GRAYColorspace ); image.quantizeColors( 256 ); image.quantize( );
または、より簡単に
image.type( GrayscaleType );
画像を書き込む前に。
Blob に書き込むために Image を使用する例を次に示します。
#include >Magick++.h> using namespace std; using namespace Magick; int main(int argc,char **argv) { InitializeMagick(*argv); // Read GIF file from disk Image image( "giraffe.gif" ); // Write to BLOB in JPEG format Blob blob; image.magick( "JPEG" ) // Set JPEG output format image.write( &blob ); [ Use BLOB data (in JPEG format) here ] return 0; }
同様に、Blob から画像を読み込むには、次の例のいずれかを使用できます。
[ 以下の例のエントリ条件は、data がエンコードされた画像データへのポインタであり、length がデータのサイズを表すことです。 ]
Blob blob( data, length ); Image image( blob );または
Blob blob( data, length ); Image image; image.read( blob);一部の画像にはサイズまたは形式が含まれていないため、サイズと形式を事前に指定する必要があります。
Blob blob( data, length ); Image image; image.size( "640x480") image.magick( "RGBA" ); image.read( blob);
|
|
||||||||||
const std::string &imageSpec_ | imageSpec_ で指定されたファイルまたは URL から読み込むことで Image を構築します。配列表記 (例: filename[9]) を使用して、マルチフレーム画像から特定のシーンを選択します。 | ||||||||||
const Geometry &size_, const Color &color_ | 指定されたサイズと色の空白の画像キャンバスを構築します。 | ||||||||||
const Blob &blob_ | メモリ内 BLOB に含まれるエンコードされた画像データから読み込むことで Image を構築します。コンストラクタ引数によっては、Blob の size、depth、magick (形式) も指定できます。一部の画像形式では、サイズを指定する必要があります。デフォルトの ImageMagick が使用する深さは、コンパイルされた量子サイズ (8 または 16) に依存します。ImageMagick の量子サイズが画像の量子サイズと一致しない場合は、深さを指定する必要がある場合があります。ImageMagick は通常、画像の形式を自動的に検出できます。形式を自動的に検出できない場合は、形式 (magick) を指定する必要があります。 | ||||||||||
const Blob &blob_, const Geometry &size_ | |||||||||||
const Blob &blob_, const Geometry &size, size_t depth | |||||||||||
const Blob &blob_, const Geometry &size, size_t depth_, const string &magick_ | |||||||||||
const Blob &blob_, const Geometry &size, const string &magick_ | |||||||||||
const size_t width_, const size_t height_, std::string map_, const StorageType type_, const void *pixels_ |
画像ピクセルの配列に基づいて新しい Image を構築します。ピクセルデータは、上から下へのスキャンライン順である必要があります。データは、文字、短整数、整数、浮動小数点、または倍精度浮動小数点にすることができます。浮動小数点および倍精度浮動小数点では、ピクセルが [0..1] に正規化されている必要があります。その他の型は [0..MaxRGB] です。たとえば、符号なし赤-緑-青文字データから 640x480 の画像を作成するには、次を使用します。
Image image( 640, 480, "RGB", 0, pixels );
パラメータは次のとおりです。
|
画像操作メソッドは非常に使いやすいです。たとえば
Image image; image.read("myImage.tiff"); image.addNoise(GaussianNoise); image.write("myImage.tiff");画像ファイル "myImage.tiff" にガウスノイズを追加します。
Image でサポートされている操作を次の表に示します。
メソッド | シグネチャ | 説明 | |||||||||||||
size_t width, size_t height, size_t offset = 0 |
画像に適応しきい値処理を適用します。適応しきい値処理は、理想的なしきい値レベルが事前に不明な場合、または画像全体で照明勾配が一定でない場合に役立ちます。適応しきい値処理は、ピクセル領域 (width と height で指定されたサイズ) の平均 (平均) を評価し、平均をしきい値として使用することで機能します。背景から残りのノイズを除去するために、平均から定数 offset (デフォルトはゼロ) を減算してしきい値を調整できます。 |
||||||||||||||
|
NoiseType noiseType_ | 指定されたノイズタイプで画像にノイズを追加します。 | |||||||||||||
addNoiseChannel |
const ChannelType channel_, const NoiseType noiseType_ |
指定されたノイズタイプで画像チャネルにノイズを追加します。channel_ パラメータは、ノイズを追加するチャネルを指定します。noiseType_ パラメータは、ノイズのタイプを指定します。 |
|||||||||||||
affineTransform |
const DrawableAffine &affine |
指定されたアフィン (または自由変換) 行列によって画像を変換します。 |
|||||||||||||
|
const std::string &text_, const Geometry &location_ | 指定されたテキストと配置場所を使用して注釈を付けます。 | |||||||||||||
string text_, const Geometry &boundingArea_, GravityType gravity_ | 指定されたテキスト、境界領域、および配置グラビティを使用して注釈を付けます。boundingArea_ が無効な場合、境界領域は画像全体になります。 | ||||||||||||||
const std::string &text_, const Geometry &boundingArea_, GravityType gravity_, double degrees_, | 指定されたテキスト、境界領域、配置グラビティ、および回転を使用してテキストで注釈を付けます。boundingArea_ が無効な場合、境界領域は画像全体になります。 | ||||||||||||||
const std::string &text_, GravityType gravity_ | テキスト (境界領域は画像全体) と配置グラビティを使用して注釈を付けます。 | ||||||||||||||
|
const double radius_ = 1, const double sigma_ = 0.5 | 画像をぼかします。radius_ パラメータは、中心ピクセルを含まない、ガウスの半径をピクセル単位で指定します。sigma_ パラメータは、ラプラシアンの標準偏差をピクセル単位で指定します。 | |||||||||||||
blurChannel |
const ChannelType channel_, const double radius_ = 0.0, const double sigma_ = 1.0 |
画像チャネルをぼかします。channel_ パラメータは、ぼかすチャネルを指定します。radius_ パラメータは、中心ピクセルを含まない、ガウスの半径をピクセル単位で指定します。sigma_ パラメータは、ラプラシアンの標準偏差をピクセル単位で指定します。 | |||||||||||||
|
const Geometry &geometry_ = "6x6+0+0" | ボーダー画像(画像にボーダーを追加)。ボーダーの色はborderColor属性で指定します。 | |||||||||||||
|
const std::string &cdl_ | カラーデシジョンリストによる色補正。詳細については、http://en.wikipedia.org/wiki/ASC_CDLを参照してください。 | |||||||||||||
|
ChannelType channel_ | 画像からチャンネルを抽出します。このオプションを使用して、画像から特定のチャンネルを抽出します。例えば、alphaChannelは画像からアルファ値を抽出するのに役立ちます。 | |||||||||||||
|
const double radius_ = 1, const double sigma_ = 0.5 | 木炭効果画像(木炭スケッチのように見える)。radius_パラメータは、中心ピクセルを除いたガウスの半径をピクセル単位で指定します。sigma_パラメータは、ラプラシアンの標準偏差をピクセル単位で指定します。 | |||||||||||||
|
const Geometry &geometry_ | 画像のチョップ(画像の垂直または水平のサブ領域を削除) | |||||||||||||
|
const unsigned int opacityRed_, const unsigned int opacityGreen_, const unsigned int opacityBlue_, const Color &penColor_ | 赤、緑、青の量子に対して指定されたパーセントの不透明度を使用して、ペンカラーで画像をカラーライズします。 | |||||||||||||
|
const size_t order_, const double *color_matrix_ | 画像に色補正を適用します。 | |||||||||||||
|
const std::string &comment_ | 画像にコメントを付加します(画像にコメント文字列を追加)。デフォルトでは、各画像にはファイル名がコメントとして付加されます。このメソッドを使用して、画像に特定のコメントを割り当てます。オプションで、特殊なフォーマット文字を埋め込むことで、画像のファイル名、タイプ、幅、高さ、またはその他の画像属性を含めることができます。 | |||||||||||||
比較 |
const Image &reference_ |
現在の画像を別の画像と比較します。現在の画像にmeanErrorPerPixel、normalizedMaxError、およびnormalizedMeanErrorを設定します。画像が同一の場合はfalseが返されます。参照画像の列、行、カラースペース、またはマットが現在の画像と異なる場合は、ErrorOption例外がスローされます。 |
|||||||||||||
|
const Image &compositeImage_, ssize_t xOffset_, ssize_t yOffset_, CompositeOperator compose_ = InCompositeOp | compose_で指定された合成アルゴリズムを使用して、xOffset_、yOffset_で指定されたオフセットで現在の画像に画像を合成します。 | |||||||||||||
const Image &compositeImage_, const Geometry &offset_, CompositeOperator compose_ = InCompositeOp | compose_で指定された合成アルゴリズムを使用して、offset_で指定されたオフセットで現在の画像に画像を合成します。 | ||||||||||||||
const Image &compositeImage_, GravityType gravity_, CompositeOperator compose_ = InCompositeOp | compose_で指定された合成アルゴリズムを使用して、gravity_で指定された配置で現在の画像に画像を合成します。 | ||||||||||||||
|
size_t sharpen_ | 画像のコントラスト(画像内の強度差を強調) | |||||||||||||
|
size_t order_, const double *kernel_ | 画像の畳み込み。ユーザー指定の畳み込みを画像に適用します。order_パラメータは、フィルターカーネルの列と行の数を表し、kernel_は適用する畳み込みカーネルを表す倍精度の二次元配列です。 | |||||||||||||
|
const Geometry &geometry_ | 画像のクロップ(元の画像のサブ領域) | |||||||||||||
|
int amount_ | 画像のカラーマップをサイクル | |||||||||||||
|
void | 画像のスペックル除去(スペックルノイズを低減) | |||||||||||||
|
void |
画像を画面に表示します。 注意:画像形式が表示ビジュアルと互換性がない場合(例:カラーマップ表示でのJPEG)、元の画像が変更されます。これが問題になる場合は、元の画像のコピーを使用してください。 |
|||||||||||||
|
const DistortImageMethod method, const size_t number_arguments, const double *arguments, const bool bestfit = false | 画像の歪み。ユーザー指定の歪みを画像に適用します。 | |||||||||||||
|
const Drawable &drawable_ | 画像に図形またはテキストを描画します。 | |||||||||||||
const std::list<Drawable > &drawable_ | STLリストに含まれるDrawableオブジェクトのセットを使用して、画像に図形またはテキストを描画します。このメソッドを使用すると、描画パフォーマンスが向上し、リスト内の描画オブジェクトをまとめて繰り返し使用できます。 | ||||||||||||||
|
size_t radius_ = 0.0 | 画像のエッジ(画像内のエッジを強調表示)。半径は、ピクセルの近傍の半径です。自動半径選択の場合は、ゼロの半径を指定します。 | |||||||||||||
|
const double radius_ = 1, const double sigma_ = 0.5 | 画像をエンボス加工します(3D効果でエッジを強調表示)。radius_パラメータは、中心ピクセルを除いたガウスの半径をピクセル単位で指定します。sigma_パラメータは、ラプラシアンの標準偏差をピクセル単位で指定します。 | |||||||||||||
|
void | 画像のエンハンス(ノイズを最小化) | |||||||||||||
|
void | 画像の均等化(ヒストグラム均等化) | |||||||||||||
|
void | すべての画像ピクセルを現在の背景色に設定します。 | |||||||||||||
|
const Geometry &geometry_ | ジオメトリ、グラビティ、および画像の背景色で定義されているように、画像を拡張します。 | |||||||||||||
const Geometry &geometry_, const Color &backgroundColor_ | |||||||||||||||
const Geometry &geometry_, const GravityType &gravity_ | ジオメトリ、グラビティ、および画像の背景色で定義されているように、画像を拡張します。 | ||||||||||||||
const Geometry &geometry_, const Color &backgroundColor_, const GravityType &gravity_ | |||||||||||||||
|
void | 画像をフリップします(各スキャンラインを垂直方向に反転)。 | |||||||||||||
色 |
ssize_t x_, ssize_t y_, const Color &fillColor_ | ターゲットピクセルの色と一致し、ターゲットピクセルの隣接ピクセルであるピクセルをまたいで、色を塗りつぶします。色の一致を判断する際には、現在のファズ設定を使用します。 | |||||||||||||
const Geometry &point_, const Color &fillColor_ | |||||||||||||||
ssize_t x_, ssize_t y_, const Color &fillColor_, const Color &borderColor_ | ターゲットピクセルから開始し、指定されたボーダーカラーと一致するピクセルで停止するピクセルをまたいで、色を塗りつぶします。色の一致を判断する際には、現在のファズ設定を使用します。 | ||||||||||||||
const Geometry &point_, const Color &fillColor_, const Color &borderColor_ | |||||||||||||||
塗りつぶし不透明度 | const long x_, const long y_, const unsigned int opacity_, const PaintMethod method_ | メソッドを使用して、ターゲットピクセル(x,y)の色(ファズファクター内)と一致するピクセルを、置換不透明度値で塗りつぶします。 | |||||||||||||
テクスチャ |
ssize_t x_, ssize_t y_, const Image &texture_ | ターゲットピクセルの色と一致し、ターゲットピクセルの隣接ピクセルであるピクセルをまたいで、テクスチャを塗りつぶします。色の一致を判断する際には、現在のファズ設定を使用します。 | |||||||||||||
const Geometry &point_, const Image &texture_ | |||||||||||||||
ssize_t x_, ssize_t y_, const Image &texture_, const Color &borderColor_ | ターゲットピクセルから開始し、指定されたボーダーカラーと一致するピクセルで停止するピクセルをまたいで、テクスチャを塗りつぶします。色の一致を判断する際には、現在のファズ設定を使用します。 | ||||||||||||||
const Geometry &point_, const Image &texture_, const Color &borderColor_ | |||||||||||||||
|
void | 画像をフロップします(各スキャンラインを水平方向に反転)。 | |||||||||||||
|
const Geometry &geometry_ = "25x25+6+6" | 画像の周りに装飾フレームを追加します。 | |||||||||||||
size_t width_, size_t height_, ssize_t x_, ssize_t y_, ssize_t innerBevel_ = 0, ssize_t outerBevel_ = 0 | |||||||||||||||
|
const std::string expression, const Magick::ChannelType channel | 画像をFxします。数式を画像に適用します。 | |||||||||||||
|
double gamma_ | 画像のガンマ補正(均一な赤、緑、青補正)。 | |||||||||||||
double gammaRed_, double gammaGreen_, double gammaBlue_ | 画像の赤、緑、青のチャンネルをガンマ補正します。 | ||||||||||||||
|
const double width_, const double sigma_ | 画像をガウシアンブラーします。畳み込みマスクに含める隣接ピクセルの数は「width_」で指定します。たとえば、幅が1の場合は、(標準の)3x3畳み込みマスクが得られます。ガウスベルカーブの標準偏差は「sigma_」で指定します。 | |||||||||||||
ガウシアンブラーチャンネル |
const ChannelType channel_, const double radius_ = 0.0, const double sigma_ = 1.0 |
画像チャンネルをガウシアンブラーします。channel_パラメータは、ブラーするチャンネルを指定します。畳み込みマスクに含める隣接ピクセルの数は「width_」で指定します。たとえば、幅が1の場合は、(標準の)3x3畳み込みマスクが得られます。ガウスベルカーブの標準偏差は「sigma_」で指定します。 | |||||||||||||
haldClut |
const Image &reference_ |
Haldカラー参照テーブルを画像に適用します。 |
|||||||||||||
|
const double factor_ | 画像をインプロードします(特殊効果)。 | |||||||||||||
|
const Image &phaseImage_, const bool magnitude_ | 画像を振幅/位相または実/虚画像ペアとして逆離散フーリエ変換(DFT)を実装します。 | |||||||||||||
|
const string &label_ | 画像にラベルを割り当てます。このオプションを使用して、画像に特定のラベルを割り当てます。オプションで、特殊なフォーマット文字を埋め込むことで、ラベルに画像のファイル名、タイプ、幅、高さ、またはシーン番号を含めることができます。文字列の最初の文字が@の場合、画像ラベルは文字列の残りの文字でタイトルが付けられたファイルから読み込まれます。Postscriptに変換する場合は、このオプションを使用して、画像の上に印刷するヘッダー文字列を指定します。 | |||||||||||||
レベル |
const double black_point, const double white_point, const double mid_point=1.0 |
画像のレベルを調整します。指定された白点と黒点の間に収まる色を、利用可能な最大量子範囲にスケーリングすることで、画像のレベルを調整します。提供されるパラメータは、黒点、中間(ガンマ)、および白点を表します。黒点は、画像内で最も暗い色を指定します。黒点よりも暗い色はゼロに設定されます。中間点(ガンマ)は、画像に適用するガンマ補正を指定します。白点は、画像内で最も明るい色を指定します。白点よりも明るい色は、最大量子値に設定されます。黒点と白点の有効な範囲は0〜MaxRGBであり、中間(ガンマ)の有効な範囲は0〜10です。 |
|||||||||||||
レベルチャンネル |
const ChannelType channel, const double black_point, const double white_point, const double mid_point=1.0 |
画像チャンネルのレベルを調整します。指定された白点と黒点の間に収まる値を、利用可能な最大量子範囲にスケーリングすることで、画像チャンネルのレベルを調整します。提供されるパラメータは、黒点、中間(ガンマ)、および白点を表します。黒点は、画像内で最も暗い色を指定します。黒点よりも暗い色はゼロに設定されます。中間点(ガンマ)は、画像に適用するガンマ補正を指定します。白点は、画像内で最も明るい色を指定します。白点よりも明るい色は、最大量子値に設定されます。黒点と白点の有効な範囲は0〜MaxRGBであり、中間(ガンマ)の有効な範囲は0〜10です。 |
|||||||||||||
|
void | 画像を整数サイズで拡大します。 | |||||||||||||
|
const Image &mapImage_ , bool dither_ = false | 参照画像から最も近い色で画像の色をリマップします。画像にFloyd/Steinberg誤差拡散を適用する場合は、dither_をtrueに設定します。デフォルトでは、色数削減では元の画像を最もよく表す最適な色のセットが選択されます。または、このオプションを使用して、画像ファイルから特定の色セットを選択することもできます。 | |||||||||||||
|
const ssize_t x_, const ssize_t, const unsigned int alpha_, const Color &target_, const bool invert_ | 指定された領域を、置換アルファ値で塗りつぶします。 | |||||||||||||
メディアンフィルター | const double radius_ = 0.0 | 各ピクセルコンポーネントを円形の近傍の中央色で置き換えることで、画像をフィルタリングします。 | |||||||||||||
|
LayerMethod noiseType_ | 画像レイヤーまたはアニメーションフレームのセットを形成する複数の画像を処理します。 | |||||||||||||
|
void | 画像を整数サイズで縮小します。 | |||||||||||||
modifyImage | void | 画像の更新準備。基になる画像への参照が1つしかないことを保証し、基になる画像を以前の世代の画像に影響を与えることなく安全に変更できるようにします。必要に応じて、基になる画像を新しい画像にコピーします。 | |||||||||||||
|
double brightness_, double saturation_, double hue_ | 画像の彩度、明るさ、色相のパーセントをモジュレートします。彩度と明るさのモジュレーションは、現在の値の比率(変化がない場合は1.0)として行われます。色相のモジュレーションは、現在の位置からの絶対的な-180度から+180度の回転であり、引数の範囲は0から2.0に対応します(変化がない場合は1.0)。 | |||||||||||||
モーションブラー |
const double radius_, const double sigma_, const double angle_ |
指定されたブラーファクターで画像にモーションブラーをかけます。radius_パラメータは、中心ピクセルを含まない、ピクセル単位のガウス関数の半径を指定します。sigma_パラメータは、ピクセル単位のラプラシアンの標準偏差を指定します。angle_パラメータは、オブジェクトが(右から0度で)現れる角度を指定します。 |
|||||||||||||
|
bool grayscale_ = false | 画像の色を反転させます。すべてのピクセルを補色に置き換えます(白は黒、黄色は青などになります)。画像内のグレースケール値のみを反転させるには、grayscaleを設定します。 | |||||||||||||
|
void | 画像をノーマライズします(ピクセル値を色値の全範囲に広げることでコントラストを向上させます)。 | |||||||||||||
|
size_t radius_ = 3 | 画像を油絵のようにします(画像が油絵のように見えます)。 | |||||||||||||
|
unsigned int opacity_ | 画像内の不透明度チャネルを設定または減衰させます。画像ピクセルが不透明な場合は、指定された不透明度値に設定され、それ以外の場合は、指定された不透明度値とブレンドされます。opacity_の値は、0(完全に不透明)からMaxRGBの範囲です。OpaqueOpacityおよびTransparentOpacityは、それぞれ完全に不透明または完全に透明にするために使用できます。 | |||||||||||||
|
const Color &opaqueColor_, const Color &penColor_ | opaqueColor_に一致するピクセルの色を、指定されたpenColor_に変更します。 | |||||||||||||
|
const std::string &imageSpec_ | ピングは読み取りに似ていますが、画像の列、行、およびファイルサイズを決定するのに十分な画像のみが読み取られます。columns, rowsおよびfileSize属性は、ピングの呼び出し後に有効になります。画像データは、ピングの呼び出し後は無効です。 | |||||||||||||
const Blob &blob_ | |||||||||||||||
プロセス |
std::string name_, const ssize_t argc_, char **argv_ |
指定されたプロセスモジュールを実行し、引数ベクトルを介して引数を渡し、argc_はベクトルの引数の数を指定し、argv_は引数ベクトルを構成するヌル終端C文字列の配列のアドレスを渡します。要求されたプロセスモジュールが存在しない場合、ロードに失敗した場合、または実行中に失敗した場合、例外がスローされます。 |
|||||||||||||
|
bool measureError_ = false | 画像を量子化します(色の数を減らします)。エラー属性を計算するには、measureError_をtrueに設定します。 | |||||||||||||
|
const Geometry &geometry_ = "6x6+0+0", bool raisedFlag_ = false | 画像をレイズします(画像の端を明るくしたり暗くしたりして、3Dの隆起または陥没した効果を与えます)。 | |||||||||||||
|
const string &imageSpec_ | 画像を現在のオブジェクトに読み込みます。 | |||||||||||||
const Geometry &size_, const std::string &imageSpec_ | 指定されたサイズの画像を現在のオブジェクトに読み込みます。この形式は、サイズを指定しない画像、または画像のデコードにサイズヒントを指定する場合に役立ちます。たとえば、フォトCD、JBIG、またはJPEG画像を読み取る場合、サイズ要求により、指定されたサイズ以上の次の解像度の画像がライブラリから返されます。これにより、メモリと時間を節約できる場合があります。 | ||||||||||||||
const Blob &blob_ | メモリ内のBLOBから指定されたサイズのエンコードされた画像を、現在のオブジェクトに読み込みます。メソッド引数に応じて、Blobのサイズ、深さ、および形式も指定できます。一部の画像形式では、サイズを指定する必要があります。デフォルトのImageMagickが深さに使用する値は、量子サイズ(8または16)によって異なります。ImageMagickの量子サイズが画像のサイズと一致しない場合、深さを指定する必要がある場合があります。ImageMagickは通常、画像の形式を自動的に検出できます。形式を自動的に検出できない場合は、形式を指定する必要があります。 | ||||||||||||||
const Blob &blob_, const Geometry &size_ | |||||||||||||||
const Blob &blob_, const Geometry &size_, size_t depth_ | |||||||||||||||
const Blob &blob_, const Geometry &size_, size_t depth_, const string &magick_ | |||||||||||||||
const Blob &blob_, const Geometry &size_, const string &magick_ | |||||||||||||||
const size_t width_, const size_t height_, std::string map_, const StorageType type_, const void *pixels_ |
画像ピクセルの配列に基づいて画像を読み取ります。ピクセルデータは、上から下へのスキャンライン順である必要があります。データは、文字、短い整数、整数、浮動小数点、または倍精度浮動小数点にすることができます。浮動小数点と倍精度浮動小数点では、ピクセルを[0..1]に正規化する必要があります。他の型は[0..MaxRGB]です。たとえば、符号なし赤-緑-青の文字データから640x480の画像を作成するには、次のようにします。
image.read( 640, 480, "RGB", CharPixel, pixels );
パラメータは次のとおりです。
|
||||||||||||||
|
const double order_ | ノイズピーク除去フィルターを使用して、画像内のノイズを低減します。 | |||||||||||||
ランダムしきい値 |
const Geometry &thresholds_ |
画像のしきい値をランダムに設定します。各ピクセルの強度をランダムなしきい値と比較して、個々のピクセルの値を変更します。結果は、低コントラストの2色画像になります。thresholds_引数は、LOWxHIGHしきい値を含むジオメトリです。文字列に2x2、3x3、または4x4が含まれている場合、代わりに2、3、または4次の順序付きディザリングが実行されます。これは、'量子化'ベースのディザリングの非常に高速な代替手段です。 |
|||||||||||||
ランダムしきい値チャネル |
const Geometry &thresholds_, const ChannelType channel_ |
randomThreshold()と同様ですが、指定されたチャネルに限定されます。 |
|||||||||||||
|
int columns_, ssize_t rows_ | 指定された列数と行数で画像をロールします(画像を垂直および水平にロールします)。 | |||||||||||||
|
double degrees_ | 指定された角度で画像を反時計回りに回転させます。 | |||||||||||||
|
const Geometry &geometry_ | ピクセルサンプリングアルゴリズムを使用して、画像のサイズを変更します。 | |||||||||||||
|
const Geometry &geometry_ | 単純な比率アルゴリズムを使用して、画像のサイズを変更します。 | |||||||||||||
|
double clusterThreshold_ = 1.0, double smoothingThreshold_ = 1.5 |
カラーコンポーネントのヒストグラムを分析し、ファジーc-means手法を使用して同質な単位を識別することにより、セグメント(類似の画像コンポーネントを結合)します。また、quantizeColorSpaceおよびverbose画像属性も使用します。clusterThreshold_を、各クラスターが有効と見なされるためには、クラスターしきい値を超過する必要があるピクセルの数として指定します。SmoothingThreshold_は、ヒストグラムの2次導関数におけるノイズを除去します。値を大きくすると、2次導関数がより滑らかになることが予想されます。デフォルトは1.5です。 | |||||||||||||
|
double azimuth_ = 30, double elevation_ = 30,
bool colorShading_ = false |
遠方の光源を使用して画像をシェードします。光源の位置としてazimuth_とelevation_を指定します。デフォルトでは、シェーディングはグレースケール画像として表示されます。画像の赤、緑、青のコンポーネントをシェードするには、colorShading_をtrueに設定します。 | |||||||||||||
|
const double percent_opacity = 80, const double sigma_ = 0.5, const ssize_t x_ = 0, const ssize_t y_ = 0 | 画像の影をシミュレートします。 | |||||||||||||
|
const double radius_ = 1, const double sigma_ = 0.5 | 画像内のピクセルをシャープにします。radius_パラメータは、中心ピクセルを含まない、ピクセル単位のガウス関数の半径を指定します。sigma_パラメータは、ピクセル単位のラプラシアンの標準偏差を指定します。 | |||||||||||||
シャープチャネル |
const ChannelType channel_, const double radius_ = 0.0, const double sigma_ = 1.0 |
画像チャネル内のピクセル量子をシャープにします。channel_パラメータは、シャープにするチャネルを指定します。radius_パラメータは、中心ピクセルを含まない、ピクセル単位のガウス関数の半径を指定します。sigma_パラメータは、ピクセル単位のラプラシアンの標準偏差を指定します。 | |||||||||||||
|
const Geometry &geometry_ | 画像の端からピクセルをシェーブします。 | |||||||||||||
|
double xShearAngle_, double yShearAngle_ | 画像をせん断します(X軸またはY軸で画像をスライドさせて平行四辺形を作成します)。せん断は、画像の端をX軸またはY軸に沿ってスライドさせ、平行四辺形を作成します。X方向せん断は端をX軸に沿ってスライドさせ、Y方向せん断は端をY軸に沿ってスライドさせます。せん断の量は、せん断角度によって制御されます。X方向せん断の場合、x度はY軸を基準に測定され、同様に、Y方向せん断の場合、y度はX軸を基準に測定されます。せん断によって残された空の三角形は、borderColorとして定義された色で塗りつぶされます。 | |||||||||||||
|
double factor_ = 50.0 | 画像をソラリゼーションします(現像中に写真フィルムを光にさらしたときに見られる効果に似ています)。 | |||||||||||||
|
const Geometry &geometry_ | 背景色を画像にスプライスします。 | |||||||||||||
|
size_t amount_ = 3 | 指定された量だけ画像内のピクセルをランダムに広げます。 | |||||||||||||
|
const Image &watermark_ | (2番目の画像に基づいて)画像にデジタル透かしを追加します。 | |||||||||||||
|
const ChannelType channel, const SparseColorMethod method, const size_t number_arguments, const double *arguments | 一連の座標が与えられたスパースカラー画像は、さまざまな手法を使用して、これらの座標で見つかった色を画像全体に補間します。 | |||||||||||||
|
ImageStatistics *statistics | 画像統計を取得します。統計は0.0から1.0の範囲に正規化され、指定されたImageStatistics構造体に出力されます。この構造体には、赤、緑、青、および不透明度の各チャネルの最大値、最小値、平均値、標準偏差、および分散(例:statistics->red.maximum)のメンバーが含まれています。 | |||||||||||||
|
const Image &rightImage_ | 赤青メガネで見たときにステレオに見える画像を作成します(左に赤の画像、右に青の画像)。 | |||||||||||||
|
double degrees_ | 画像を渦巻き状にします(画像のピクセルは度数で回転します)。 | |||||||||||||
|
const Image &texture_ | 画像背景色と一致するピクセルにテクスチャを重ねます。 | |||||||||||||
|
double threshold_ | 画像のしきい値を設定します。 | |||||||||||||
|
const Geometry &imageGeometry_ | 画像とクロップジオメトリに基づいて画像を変換します。クロップジオメトリはオプションです。 | |||||||||||||
const Geometry &imageGeometry_, const Geometry &cropGeometry_ | |||||||||||||||
|
const Color &color_ | アルファ画像を画像に追加し、colorと一致するピクセルを透明にします。 | |||||||||||||
|
void | 画像から背景色の端をトリムします。 | |||||||||||||
|
double radius_, double sigma_, double amount_, double threshold_ | アンシャープマスクアルゴリズムを使用して、画像をシャープにします。radius_パラメータは、中心ピクセルを含まない、ピクセル単位のガウス関数の半径を指定します。sigma_パラメータは、ピクセル単位のガウス関数の標準偏差を指定します。amount_パラメータは、オリジナルとブラー画像の差のうち、オリジナルに加算されるパーセンテージを指定します。threshold_パラメータは、差額を適用するために必要なピクセル単位のしきい値を指定します。 | |||||||||||||
アンシャープマスクチャネル |
const ChannelType channel_, const double radius_, const double sigma_, const double amount_, const double threshold_ |
アンシャープマスクアルゴリズムを使用して、画像のチャンネルをシャープにします。 channel_ パラメータは、シャープにするチャンネルを指定します。radius_ パラメータは、中心ピクセルを除いた、ガウシアンの半径をピクセル単位で指定します。sigma_ パラメータは、ガウシアンの標準偏差をピクセル単位で指定します。amount_ パラメータは、元の画像とぼかし画像の差を、元の画像に追加する割合をパーセントで指定します。threshold_ パラメータは、差分量を適用するために必要なピクセル単位のしきい値を指定します。 | |||||||||||||
|
double amplitude_ = 25.0, double wavelength_ = 150.0 | 正弦波に沿って画像を変化させます。 | |||||||||||||
|
const string &imageSpec_ |
ファイル名 imageSpec_ を使用して画像をファイルに書き込みます。 注意: 元の画像よりも少ない色数しかサポートできない画像形式を選択した場合、または量子化が要求された場合、元の画像は少ない色数に量子化されます。これが問題になる場合は、元の画像のコピーを使用してください。 |
|||||||||||||
Blob *blob_ |
メモリ内の BLOB に画像を書き込み、blob_ に格納します。magick_ パラメータは、書き込む画像形式を指定します(デフォルトは magick)。depth_ パラメータは、画像の深度を指定します(デフォルトは depth)。 注意: 元の画像よりも少ない色数しかサポートできない画像形式を選択した場合、または量子化が要求された場合、元の画像は少ない色数に量子化されます。これが問題になる場合は、元の画像のコピーを使用してください。 |
||||||||||||||
Blob *blob_, std::string &magick_ | |||||||||||||||
Blob *blob_, std::string &magick_, size_t depth_ | |||||||||||||||
const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_, const std::string &map_, const StorageType type_, void *pixels_ |
提供されたバッファにピクセルデータを書き込みます。データは、type_ パラメータで指定された順序で、char、short int、integer、float、または double 形式で保存されます。たとえば、640x480 画像の1行目のスキャンラインを、赤、緑、青の順序の文字データとして抽出する場合を考えてみます。
image.write(0,0,640,1,"RGB",0,pixels);
パラメータは次のとおりです。
|
||||||||||||||
|
const Geometry &geometry_ | 指定されたサイズに画像をリサイズします。 |
画像属性は簡単に使用できます。たとえば、TIFFファイル "file.tiff" の解像度を、水平方向と垂直方向の両方で150ドット/インチ(DPI)に設定するには、次のサンプルコードを使用できます。
string filename("file.tiff"); Image image; image.read(filename); image.resolutionUnits(PixelsPerInchResolution); image.density(Geometry(150,150)); // could also use image.density("150x150") image.write(filename)サポートされている画像属性と、それらを取得するために必要なメソッド引数を次の表に示します。
|
|
|
|
|
|
bool | void | bool flag_ | 画像を単一のマルチイメージファイルに結合します。 |
|
bool | void | bool flag_ | レンダリングされたPostscriptおよびPostscriptまたはTrueTypeフォントのアンチエイリアシングを制御します。デフォルトで有効になっています。 |
遅延 |
size_t(0〜65535) | void | size_t delay_ | アニメーションシーケンスで次の画像を表示するまでに経過する必要がある時間(1/100秒単位)(0〜65535)。このオプションは、Netscape内でのGIF画像のシーケンスのアニメーションを制御するのに役立ちます。 |
反復 |
size_t | void | size_t iterations_ | アニメーションをループする反復回数(例:Netscapeループ拡張)。 |
属性 |
string |
const std::string name_ |
const std::string name_, const std::string value_ |
任意の名前付き画像属性。任意の数の名前付き属性を画像にアタッチできます。たとえば、画像のコメントは、名前が「comment」の名前付き画像属性です。EXIFタグは、名前付き属性として画像にアタッチされます。「EXIF:<tag>」の構文を使用して、「EXIF:DateTime」のようなEXIFタグを要求します。 |
色 |
色 | void | const Color &color_ | 画像背景色 |
テクスチャ |
string | void | const string &texture_ | 背景テクスチャとして使用する画像ファイル名。画像ピクセルは変更されません。 |
|
size_t | void | ベース画像の幅(変換前) | |
|
string | void | ベース画像ファイル名(変換前) | |
|
size_t | void | ベース画像の高さ(変換前) | |
|
色 | void | const Color &color_ | 画像の境界線の色 |
バウンディングボックス |
ジオメトリ | void | 境界線以外のピクセルを囲む最小のバウンディングボックスを返します。ピクセルを区別する際は、現在のファズ値が使用されます。これは、crop(Geometry(0,0))で使用される切り抜きバウンディングボックスです。 | |
|
色 | void | const Color &boxColor_ | 注釈テキストがレンダリングされるベースカラー。 |
cacheThreshold | size_t | const size_t | ピクセルキャッシュのしきい値(バイト単位)。このしきい値を超えると、それ以降のすべてのピクセルキャッシュ操作はディスクとの間で実行されます。これは静的メソッドであり、設定する属性はすべてのImageオブジェクトで共有されます。 | |
チャンネル深度 |
size_t |
const ChannelType channel_ |
const ChannelType channel_, const size_t depth_ |
チャンネルモジュラス深度。チャンネルモジュラス深度は、損失なしにチャンネルをサポートするために必要な最小ビット数を表します。チャンネルのモジュラス深度を設定すると、要求されたモジュラス深度が現在のモジュラス深度よりも小さい場合、チャンネルが変更されます(つまり、解像度が破棄されます)。そうでない場合、チャンネルは変更されません。モジュラス深度に関連付けられた属性はないため、現在のモジュラス深度はピクセルを調べることによって取得されます。その結果、返される深度は、最後に設定されたチャンネル深度よりも小さい場合があります。後続の画像処理により、チャンネル深度が増加する可能性があります。 |
チャンネル |
size_t | const size_t | ピクセルチャンネルの数。 | |
BluePrimary |
double x & y | double *x_, double *y_ | double x_, double y_ | 色度青原色点(例:x=0.15、y=0.06) |
GreenPrimary |
double x & y | double *x_, double *y_ | double x_, double y_ | 色度緑原色点(例:x=0.3、y=0.6) |
RedPrimary |
double x & y | double *x_, double *y_ | double x_, double y_ | 色度赤原色点(例:x=0.64、y=0.33) |
WhitePoint |
double x & y | double*x_, double *y_ | double x_, double y_ | 色度白色点(例:x=0.3127、y=0.329) |
|
ClassType | void | ClassType class_ | 画像ストレージクラス。DirectClass画像からPseudoClass画像への変換では、パレットのサイズ(256色または65535色)が限られているため、色が失われる可能性があることに注意してください。 |
|
画像 | void | const Image &clipMask_ | クリップマスク画像を現在の画像に関連付けます。クリップマスク画像は、現在の画像と同じ寸法である必要があります。そうでない場合は例外がスローされます。クリッピングは、クリップマスク画像でピクセルが透明な場所で行われます。既存のクリップマスクを解除するには、無効な画像を渡します。 |
|
double | void | double fuzz_ | この距離内にある色は等しいと見なされます。多くのアルゴリズムがターゲットの色を検索します。デフォルトでは、色は正確である必要があります。このオプションを使用すると、RGB空間でターゲットの色に近い色を一致させることができます。 |
|
色 | size_t index_ | size_t index_, const Color &color_ | カラーマップインデックスの色。 |
size_t |
void |
size_t entries_ |
カラーマップのエントリ数。カラーマップのサイズを設定すると、カラーマップが拡張または切り捨てられる場合があります。サポートされる最大エントリ数はMaxColormapSize定数で指定され、ImageMagickがコンパイルされたときのQuantumDepthの値によって異なります。サポートされているよりも多くのエントリが要求された場合は例外がスローされます。画像のカラーマップインデックスが有効なカラーマップエントリを参照するように、カラーマップを切り捨てる際には注意が必要です。 |
|
|
ColorspaceType colorSpace_ | void | ColorspaceType colorSpace_ | 画像ピクセルカラーを表すために使用されるカラースペース(例:CMYK)。画像ピクセルは、CMY(K)の場合を除いて、常にRGB(A)として保存されます。 |
|
size_t | void | 画像の幅 | |
|
string | void | 画像のコメント | |
|
CompositeOperator | void | CompositeOperator compose_ | コンポジションが暗黙的に使用される場合(画像のフラット化など)に使用されるコンポジション演算子。 |
型 |
CompressionType | void | CompressionType compressType_ | 画像の圧縮タイプ。デフォルトは、指定された画像ファイルの圧縮タイプです。 |
|
bool | void | bool flag_ | ImageMagickの実行中に内部デバッグメッセージの印刷を有効にします。 |
定義値 |
string |
const std::string &magick_, const std::string &key_ |
const std::string &magick_, const std::string &key_, const std::string &value_ |
指定された形式をエンコードまたはデコードするときに適用される定義文字列を設定または取得します。定義の意味は、形式固有です。形式は、magick_ 引数で指定され、形式固有のキーは key_ で指定され、関連付けられた値は value_ で指定されます。キーを完全に削除する必要がある場合は、defineSet()メソッドを参照してください。 |
定義セット |
bool |
const std::string &magick_, const std::string &key_ |
const std::string &magick_, const std::string &key_, bool flag_ |
指定された形式をエンコードまたはデコードするときに適用される定義フラグを設定または取得します。defineValue()メソッドと同様ですが、flag_ 値「true」を渡すと、その形式とキーを持つ値のない定義が作成されます。flag_ 値「false」を渡すと、既存の一致する定義が削除されます。一致するキーが存在する場合はメソッドが「true」を返し、一致するキーが存在しない場合は「false」を返します。 |
|
Geometry (デフォルト 72x72) | void | const Geometry &density_ | 画像の垂直および水平解像度(ピクセル単位)。このオプションは、PostscriptまたはPortable Documentページのデコード時に画像の密度を指定します。多くの場合、psPageSize と一緒に使用されます。 |
|
size_t (8-32) | void | size_t depth_ | 画像の深度。raw画像の読み書き時、または出力形式が複数の深度をサポートする場合に、ビット深度を指定するために使用します。デフォルトは、ImageMagickがコンパイルされた量子深度です。 |
|
EndianType | void | EndianType endian_ | エンディアンをサポートする形式に対してエンディアンオプションを指定(または取得)します。 |
|
string | void | イメージモンタージュ内のタイル名 | |
|
FILE * | FILE * | FILE *file_ | 画像ファイル記述子。 |
|
string | void | const string &fileName_ | 画像ファイル名。 |
|
off_t | void | ディスク上の画像のバイト数 | |
|
色 | void | const Color &fillColor_ | 描画オブジェクトを塗りつぶすときに使用する色 |
|
画像 | void | const Image &fillPattern_ | 描画オブジェクトを塗りつぶすときに使用するパターン画像。 |
|
FillRule | void | const Magick::FillRule &fillRule_ | 描画オブジェクトを塗りつぶすときに使用するルール。 |
|
FilterTypes | void | FilterTypes filterType_ | 画像のサイズ変更時に使用するフィルタ。使用する縮小フィルタは、画像のサイズ変更に必要な時間と結果の品質に大きな影響を与えます。デフォルトのフィルタはLanczosで、ほとんどの画像を縮小する場合に高品質な結果を生み出すことが示されています。 |
|
string | void | const string &font_ | テキストレンダリングフォント。フォントが完全に修飾されたXサーバーフォント名の場合、フォントはXサーバーから取得されます。TrueTypeフォントを使用するには、TrueTypeファイル名の前に@を付けます。それ以外の場合は、Postscriptフォント名(例:"helvetica")を指定します。 |
|
size_t | void | size_t pointSize_ | テキストレンダリングフォントのポイントサイズ |
|
TypeMetric | const std::string &text_, TypeMetric *metrics | 指定されたtextと現在のfontおよびfontPointSizeの設定を使用して、フォントタイプメトリックでメトリックを更新します。 | |
|
string | void | 詳細な画像形式の説明。 | |
|
double (一般的な範囲は0.8~2.3) | void | 画像のガンマレベル。2つの異なるワークステーションで表示される同じカラー画像は、ディスプレイモニターの違いにより異なって見える場合があります。この色の違いを調整するには、ガンマ補正を使用します。 | |
|
ジオメトリ | void | エンコード時の画像の推奨サイズ。 | |
メソッド |
size_t { 0 = 破棄が指定されていない、 1 = グラフィックを破棄しない、 3 = グラフィックを背景色で上書きする、 4 = グラフィックを前のグラフィックで上書きする。 } |
void | size_t disposeMethod_ | GIF破棄メソッド。このオプションは、GIFアニメーションを作成するときに、連続するフレームをどのようにレンダリングするか(前のフレームをどのように破棄するか)を制御するために使用されます。 |
|
Blob | void | const Blob &colorProfile_ | ICCカラープロファイル。Blobを介して提供されます。これは、Magick++ /およびImageMagickが現在このデータ構造のフォーマットを直接サポートしていないためです。仕様は、ICCカラープロファイルの形式について国際カラーコンソーシアムから入手できます。 |
型 |
InterlaceType | void | InterlaceType interlace_ | インターレーススキームのタイプ(デフォルトはNoInterlace)。このオプションは、RGBやYUVなどのraw画像形式のインターレーススキームのタイプを指定するために使用されます。NoInterlaceはインターレースしないことを意味し、LineInterlaceはスキャンラインインターレースを使用し、PlaneInterlaceはプレーンインターレースを使用します。PartitionInterlaceはPlaneInterlaceに似ていますが、異なるプレーンが個々のファイル(例:image.R、image.G、およびimage.B)に保存されます。インターレースされたGIFまたはプログレッシブJPEG画像を作成するには、LineInterlaceまたはPlaneInterlaceを使用します。 |
|
Blob | void | const Blob & iptcProfile_ | IPTCプロファイル。Blobを介して提供されます。これは、Magick++およびImageMagickが現在このデータ構造のフォーマットを直接サポートしていないためです。仕様は、IPTCプロファイルについて国際プレス電気通信評議会から入手できます。 |
|
string | void | const string &label_ | 画像のラベル |
|
string | void | const string &magick_ | 画像形式を取得します(例:"GIF") |
|
const bool | void | const bool alphaFlag_ | 画像が透明度(アルファチャネル)をサポートしている |
|
色 | void | const Color &matteColor_ | 画像マット(フレーム)の色 |
PerPixel |
double | void | 画像が減色されたときに計算された、ピクセルあたりの平均誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。 | |
modulusDepth |
size_t |
void |
size_t depth_ |
画像のモジュラス深度(精度を損なうことなく赤/緑/青のコンポーネントをサポートするために必要な最小ビット数)。ピクセルモジュラス深度は、現在の値よりも小さい値を指定することで小さくすることができ、ピクセルを更新して(精度を下げて)新しい深度にします。ピクセルモジュラス深度は、この方法を使用して現在の値以上に大きくすることはできません。 |
|
bool | void | bool flag_ | 画像を白黒に変換する |
ジオメトリ |
ジオメトリ | void | イメージモンタージュ内のタイルサイズとオフセット。モンタージュ画像でのみ有効です。 | |
MaxError |
double | void | 画像が減色されたときに計算された、ピクセルあたりの正規化された最大誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。 | |
MeanError |
double | void | 画像が減色されたときに計算された、ピクセルあたりの正規化された平均誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。 | |
orientation |
OrientationType |
void |
OrientationType orientation_ |
画像の向き。DPXやTIFFなど、一部のファイル形式でサポートされています。正しい向きにするのに役立ちます。 |
|
size_t | void |
ランレングスエンコードされたパケットの数
画像内 |
|
|
size_t | void | 各ピクセルパケットのバイト数 | |
|
ジオメトリ | void | const Geometry &pageSize_ |
画像キャンバスの推奨サイズと位置。
このオプションを使用して、Postscriptページのサイズと位置を1インチあたりのドット数で指定するか、TEXTページのサイズと位置をピクセルで指定します。このオプションは通常、densityと組み合わせて使用されます。 Pageは、GIF画像を(アニメーションのシーンなどのために)配置するためにも使用できます。 |
|
色 | ssize_t x_, ssize_t y_ | ssize_t x_, ssize_t y_, const Color &color_ | 位置x&yでのピクセルカラーを取得/設定します。 |
Blob |
const std::string name_ |
const std::string name_, const Blob &colorProfile_ |
名前付きプロファイルの取得/設定/削除。有効な名前には、"*"、"8BIM"、"ICM"、"IPTC"、またはユーザー/形式定義のプロファイル名が含まれます。 |
|
|
size_t (0~100) | void | size_t quality_ | JPEG/MIFF/PNG圧縮レベル(デフォルトは75)。 |
Colors |
size_t | void | size_t colors_ | 画像内の推奨色数。画像内の実際の色数は、要求よりも少ない場合がありますが、多くなることはありません。このオプションで指定されたよりも固有の色が少ない画像では、重複または未使用の色が削除されます。 |
ColorSpace |
ColorspaceType | void | ColorspaceType colorSpace_ | 色を量子化するカラースペース(デフォルトはRGB)。経験的証拠によれば、YUVやYIQなどのカラースペースにおける距離は、RGB空間における距離よりも知覚的な色の違いに密接に対応しています。これらのカラースペースは、画像を減色する場合により良い結果をもたらす可能性があります。 |
Dither |
bool | void | bool flag_ | Floyd/Steinbergエラー拡散を画像に適用します。ディザリングの基本的な戦略は、いくつかの隣接するピクセルの強度を平均化することにより、強度解像度を空間解像度とトレードオフすることです。色を減らすときに重度の輪郭が発生する画像は、このオプションで改善できます。このオプションを有効にするには、quantizeColorsまたはmonochromeオプションを設定する必要があります。 |
TreeDepth |
size_t | void | size_t treeDepth_ | 量子化色分類ツリーの深さ。値0または1を使用すると、減色アルゴリズムに最適なツリー深さを選択できます。2~8の値を使用して、ツリーの深さを手動で調整できます。 |
Intent |
RenderingIntent | void | RenderingIntent render_ | レンダリングインテントのタイプ |
Units |
ResolutionType | void | ResolutionType units_ | 画像解像度の単位 |
|
size_t | void | 画像内のピクセル行数 | |
|
size_t | void | size_t scene_ | 画像シーン番号 |
|
string | bool force_ = false | 画像MD5署名。署名を再計算するには、force_を「true」に設定します。 | |
|
ジオメトリ | void | const Geometry &geometry_ | raw画像の幅と高さ(幅と高さの情報をサポートしていない画像)。サイズは、マルチ解像度形式(例:Photo CD、JBIG、またはJPEG)から読み取られる画像サイズに影響を与えるためにも使用できます。 |
|
void | 画像からすべてのプロファイルとコメントを削除します。 | ||
|
bool | void | bool flag_ | オブジェクトのアウトラインを描画するときにアンチエイリアスを有効または無効にします。 |
|
色 | void | const Color &strokeColor_ | オブジェクトのアウトラインを描画するときに使用する色 |
|
size_t | void | double strokeDashOffset_ | 破線パターンを使用して描画するときに、破線の開始までの破線パターンの距離を指定します(デフォルトは0)。 |
|
const double* | void | const double* strokeDashArray_ | パスをストロークするために使用される破線とギャップのパターンを指定します。strokeDashArrayは、ユーザー単位で交互の破線とギャップの長さ(ピクセル単位)を指定する、ゼロで終了する数値の配列を表します。奇数の値が指定された場合、値のリストが繰り返されて、偶数の値が得られます。一般的なstrokeDashArray_配列には、メンバー5 3 2 0が含まれている可能性があります。ここで、ゼロの値はパターン配列の終わりを示します。 |
|
LineCap | void | LineCap lineCap_ | ストロークされたパス(またはその他のベクターシェイプ)の角で使用する形状を指定します。LineJoin の値は、UndefinedJoin、MiterJoin、RoundJoin、BevelJoin です。 |
|
LineJoin | void | LineJoin lineJoin_ | ストロークされたパス(またはその他のベクターシェイプ)の角で使用する形状を指定します。LineJoin の値は、UndefinedJoin、MiterJoin、RoundJoin、BevelJoin です。 |
|
size_t | void | size_t miterLimit_ | マイターリミットを指定します。2つの線分が鋭角で交わり、「lineJoin」にマイター結合が指定されている場合、マイターがパスのストロークに使用される線の太さを大幅に超えて伸びる可能性があります。 'miterLimit' は、マイターの長さと 'lineWidth' の比率に制限を課します。このパラメータのデフォルト値は 4 です。 |
|
double | void | double strokeWidth_ | ベクターオブジェクトを描画する際に使用するストローク幅(デフォルトは1) |
|
画像 | void | const Image &strokePattern_ | オブジェクトのストローク(アウトライン)を描画中に使用するパターン画像。 |
|
size_t | void | size_t subImage_ | 画像シーケンスのサブイメージ |
|
size_t | void | size_t subRange_ | ベース画像に対する画像の数 |
string |
void |
const std::string &encoding_ |
テキスト注釈に使用するコードセットを指定します。現時点で指定できる文字エンコーディングは、 Unicode をバイトシーケンスとして表現するための "UTF-8" のみです。デフォルトのASCIIエンコーディングを使用するには、空の文字列を指定します。Unicodeを使用するテキスト注釈を正常に行うには、Unicodeをサポートするように設計されたフォントが必要になる場合があります。 |
|
|
string | void | const string &tileName_ | タイル名 |
|
size_t | void | 画像内の色の数 | |
|
ImageType | void | ImageType | 画像のタイプ。 |
|
bool | void | bool verboseFlag_ | 画像に関する詳細情報を表示 |
|
string | void | const string &view_ | FlashPixの表示パラメータ。 |
|
VirtualPixelMethod | void | VirtualPixelMethod virtualPixelMethod_ | 画像の仮想ピクセルメソッド。 |
|
string (例: "hostname:0.0") | void | const string &display_ | 表示、フォントの取得、または画像のキャプチャを行うための X11 ディスプレイ |
|
double | void | 画像のx解像度 | |
|
double | void | 画像のy解像度 |
getPixels()を介して既存の画像ピクセルを取得します。setPixels()を使用して新しいピクセル領域を作成します。
画像の現在の世代のみが変更されるようにするには、ImageのmodifyImage()メソッドを呼び出して、基礎となる画像の参照カウントを1に減らす必要があります。これを行わないと、Imageのコピーまたは構築時に参照カウントを使用するため、前の世代の画像が変更される可能性があります。
オペレーティングシステムの機能、およびウィンドウと画像の関係に応じて、ピクセルキャッシュは、選択したウィンドウのピクセルのコピー、または実際の画像ピクセルである可能性があります。いずれにせよ、syncPixels()を呼び出すと、ベース画像が変更されたピクセルキャッシュの内容で更新されます。メソッドreadPixels()は、QuantumTypesに従って、外部ピクセルデータ形式をピクセルキャッシュにコピーすることをサポートしています。メソッドwritePixels()は、QuantumTypesで指定された形式に従って、キャッシュ内のピクセルを外部ピクセル表現にコピーすることをサポートしています。
ピクセル領域は、次の例に示すように、ピクセルにアクセス、アドレス指定、および更新できる小さな画像です。
Image image("cow.png"); // Ensure that there are no other references to this image. image.modifyImage(); // Set the image type to TrueColor DirectClass representation. image.type(TrueColorType); // Request pixel region with size 60x40, and top origin at 20x30 ssize_t columns = 60; Quantum *pixel_cache = image.getPixels(20,30,columns,40); // Set pixel at column 5, and row 10 in the pixel cache to red. ssize_t column = 5; ssize_t row = 10; Quantum *pixel = pixel_cache+row*columns+column; *pixel = Color("red"); // Save changes to underlying image . image.syncPixels(); // Save updated image to file. image.write("horse.png");
イメージキャッシュは、次のメソッドをサポートしています。
|
|
|
|
|
const Quantum * | const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ | 指定された矩形領域で定義されたように、画像からピクセルをピクセルキャッシュに転送します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。 |
|
const void* | void | 以前のgetPixel()、getConstPixels()、またはsetPixels()呼び出しに対応する画像ピクセルメタコンテンツへのポインタを返します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。ピクセルメタコンテンツは、各エントリがx,yピクセル位置に対応するvoid型の配列を表します。 |
|
void* | void | 最後のgetConstPixels、getPixels、またはsetPixels呼び出しによって要求されたピクセル領域に対応する画像ピクセルメタコンテンツへのポインタを返します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。 |
|
Quantum * | const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ | 指定された矩形領域で定義されたように、画像からピクセルをピクセルキャッシュに転送します。変更されたピクセルは、syncPixelsを介して後で画像に転送できます。返されたポインタは、次のgetPixel、getConstPixels()、またはsetPixels()呼び出しまで有効であり、ユーザーによって解放されるべきではありません。 |
|
Quantum * | const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ | 領域矩形によって定義されたように、画像ピクセルを格納するためのピクセルキャッシュ領域を割り当てます。この領域は、syncPixelsを介して後でピクセルキャッシュから画像に転送されます。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。 |
|
void | void | イメージキャッシュピクセルを画像に転送します。 |
|
void | QuantumTypes quantum_, unsigned char *source_, | バッファまたはファイルから1つ以上のピクセルコンポーネントを画像のピクセルキャッシュに転送します。ReadPixelsは、通常、画像デコーダーをサポートするために使用されます。転送される領域は、先行するsetPixels呼び出しによって設定された領域に対応します。 |
|
void | QuantumTypes quantum_, unsigned char *destination_ | 画像のピクセルキャッシュから1つ以上のピクセルコンポーネントをバッファまたはファイルに転送します。WritePixelsは、通常、画像エンコーダーをサポートするために使用されます。転送される領域は、先行するgetPixelsまたはgetConstPixels呼び出しによって設定された領域に対応します。 |