Magick::Image クラス

概要

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 オブジェクトを効率的に代入し、コンテナにコピーできるようにします)。プログラムは以下を実行します。
  1. マスター画像を読み込みます。
  2. マスター画像を 2 番目の画像に代入します。
  3. 2 番目の画像を 640x480 のサイズに変更します。
  4. マスター画像を 3 番目の画像に代入します。
  5. 3 番目の画像を 800x600 のサイズに変更します。
  6. 2 番目の画像をファイルに書き込みます。
  7. 3 番目の画像をファイルに書き込みます。
#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

エンコードされた画像 (例: JPEG) は、多くの場合ディスクファイルに書き込み、ディスクファイルから読み込まれますが、エンコードされた画像はメモリにも存在できます。メモリ内のエンコードされた画像は BLOB (Binary Large OBjects) と呼ばれ、Blob クラスを使用して表すことができます。エンコードされた画像は、ファイルから直接読み込んだり、データベースから読み込んだり、ディスクファイルからメモリにマッピングしたりすることで、最初にメモリに配置できます。または、Magick++ によってメモリに書き込むこともできます。エンコードされた画像が Blob 内に配置されたら、コンストラクタ または read() を介して Magick++ Image に読み込むことができます。同様に、Magick++ 画像は write() を介して Blob に書き込むことができます。

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);

コンストラクタ

Image はさまざまな方法で構築できます。ファイル、URL、またはメモリ内 BLOB に含まれるエンコードされた画像 (例: JPEG) から構築できます。使用可能な Image コンストラクタを次の表に示します。
 
 
Image コンストラクタ
シグネチャ
説明
const std::string &imageSpec_ imageSpec_ で指定されたファイルまたは URL から読み込むことで Image を構築します。配列表記 (例: filename[9]) を使用して、マルチフレーム画像から特定のシーンを選択します。
const Geometry &size_, const Color &color_ 指定されたサイズと色の空白の画像キャンバスを構築します。
const Blob &blob_ メモリ内 BLOB に含まれるエンコードされた画像データから読み込むことで Image を構築します。コンストラクタ引数によっては、Blob の sizedepthmagick (形式) も指定できます。一部の画像形式では、サイズを指定する必要があります。デフォルトの 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 );

パラメータは次のとおりです。
 

width_ 画像のピクセル単位の幅。
height_ 画像のピクセル単位の高さ。
map_ この文字列は、R = 赤、G = 緑、B = 青、A = アルファ、C = シアン、Y = 黄、M = マゼンタ、および K = 黒の任意の組み合わせまたは順序にすることができます。順序は、指定されたピクセル配列内のピクセルの順序を反映しています。
type_ ピクセルストレージ型 (CharPixel、ShortPixel、IntegerPixel、FloatPixel、または DoublePixel)
pixels_ この値の配列には、map_ パラメータと type_ パラメータで定義されたピクセルコンポーネントが含まれています。配列の長さは、width_ 値と height_ 値および type_ パラメータで指定された領域と同じである必要があります。

画像操作メソッド

Image は、ImageMagick ライブラリによって提供されるすべての単一画像 (画像リストではなく) 操作へのアクセスをサポートします。マルチ画像ファイル (アニメーションなど) を処理する必要がある場合は、Image の上にマルチ画像抽象化を提供する STL インターフェース を使用する必要があります。

画像操作メソッドは非常に使いやすいです。たとえば

Image image; 
image.read("myImage.tiff"); 
image.addNoise(GaussianNoise); 
image.write("myImage.tiff");
画像ファイル "myImage.tiff" にガウスノイズを追加します。

Image でサポートされている操作を次の表に示します。
 

Image 画像操作メソッド
メソッド シグネチャ 説明
adaptiveThreshold
size_t width, size_t height, size_t offset = 0
画像に適応しきい値処理を適用します。適応しきい値処理は、理想的なしきい値レベルが事前に不明な場合、または画像全体で照明勾配が一定でない場合に役立ちます。適応しきい値処理は、ピクセル領域 (widthheight で指定されたサイズ) の平均 (平均) を評価し、平均をしきい値として使用することで機能します。背景から残りのノイズを除去するために、平均から定数 offset (デフォルトはゼロ) を減算してしきい値を調整できます。
addNoise
NoiseType noiseType_ 指定されたノイズタイプで画像にノイズを追加します。
addNoiseChannel
const ChannelType channel_, const NoiseType noiseType_
指定されたノイズタイプで画像チャネルにノイズを追加します。channel_ パラメータは、ノイズを追加するチャネルを指定します。noiseType_ パラメータは、ノイズのタイプを指定します。
affineTransform
const DrawableAffine &affine
指定されたアフィン (または自由変換) 行列によって画像を変換します。
annotate
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_ テキスト (境界領域は画像全体) と配置グラビティを使用して注釈を付けます。
blur
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_ パラメータは、ラプラシアンの標準偏差をピクセル単位で指定します。
border
const Geometry &geometry_ = "6x6+0+0" ボーダー画像(画像にボーダーを追加)。ボーダーの色はborderColor属性で指定します。
cdl
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_
現在の画像を別の画像と比較します。現在の画像にmeanErrorPerPixelnormalizedMaxError、および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
fx
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 );

パラメータは次のとおりです。
 

width_ 画像のピクセル単位の幅。
height_ 画像のピクセル単位の高さ。
map_ この文字列は、R = 赤、G = 緑、B = 青、A = アルファ、C = シアン、Y = 黄、M = マゼンタ、および K = 黒の任意の組み合わせまたは順序にすることができます。順序は、指定されたピクセル配列内のピクセルの順序を反映しています。
type_ ピクセルストレージタイプ(CharPixel、ShortPixel、IntegerPixel、FloatPixel、またはDoublePixel)
pixels_ この値の配列には、map_ パラメータと type_ パラメータで定義されたピクセルコンポーネントが含まれています。配列の長さは、width_ 値と height_ 値および type_ パラメータで指定された領域と同じである必要があります。
ノイズ低減
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);

パラメータは次のとおりです。
 

x_ 抽出する領域の左端の座標の水平座標。
y_ 抽出する領域の上端の座標の垂直座標。
columns_ 抽出する領域のピクセル単位の幅。
rows_ 抽出する領域のピクセル単位の高さ。
map_ この文字列は、R = 赤、G = 緑、B = 青、A = アルファ、C = シアン、Y = 黄、M = マゼンタ、および K = 黒の任意の組み合わせまたは順序にすることができます。順序は、提供されたピクセル配列内のピクセルの順序を反映しています。
type_ ピクセルストレージタイプ(CharPixel、ShortPixel、IntegerPixel、FloatPixel、またはDoublePixel)
pixels_ この値の配列には、map_ パラメータと type_ パラメータで定義されたピクセルコンポーネントが含まれています。配列の長さは、width_ 値と height_ 値および type_ パラメータで指定された領域と同じである必要があります。
リサイズ
const Geometry &geometry_ 指定されたサイズに画像をリサイズします。

画像属性

画像属性は、Imageのメソッドを介して設定および取得されます。ポインタ引数を受け取るメソッド(例:chromaBluePrimary)を除いて、すべてのメソッドは属性を値で返します。

画像属性は簡単に使用できます。たとえば、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)
サポートされている画像属性と、それらを取得するために必要なメソッド引数を次の表に示します。
 
画像属性
関数
取得シグネチャ
設定シグネチャ
説明
adjoin
bool void bool flag_ 画像を単一のマルチイメージファイルに結合します。
antiAlias
bool void bool flag_ レンダリングされたPostscriptおよびPostscriptまたはTrueTypeフォントのアンチエイリアシングを制御します。デフォルトで有効になっています。
animation-
遅延
size_t(0〜65535) void size_t delay_ アニメーションシーケンスで次の画像を表示するまでに経過する必要がある時間(1/100秒単位)(0〜65535)。このオプションは、Netscape内でのGIF画像のシーケンスのアニメーションを制御するのに役立ちます。
animation-
反復
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タグを要求します。
background-
void const Color &color_ 画像背景色
background-
テクスチャ
string void const string &texture_ 背景テクスチャとして使用する画像ファイル名。画像ピクセルは変更されません。
baseColumns
size_t void   ベース画像の幅(変換前)
baseFilename
string void   ベース画像ファイル名(変換前)
baseRows
size_t void   ベース画像の高さ(変換前)
borderColor
void  const Color &color_ 画像の境界線の色
バウンディングボックス
ジオメトリ void   境界線以外のピクセルを囲む最小のバウンディングボックスを返します。ピクセルを区別する際は、現在のファズ値が使用されます。これは、crop(Geometry(0,0))で使用される切り抜きバウンディングボックスです。
boxColor
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 ピクセルチャンネルの数。
chroma-
BluePrimary
double x & y double *x_, double *y_ double x_, double y_ 色度青原色点(例:x=0.15、y=0.06)
chroma-
GreenPrimary
double x & y double *x_, double *y_ double x_, double y_ 色度緑原色点(例:x=0.3、y=0.6)
chroma-
RedPrimary
double x & y double *x_, double *y_ double x_, double y_ 色度赤原色点(例:x=0.64、y=0.33)
chroma-
WhitePoint
double x & y double*x_, double *y_ double x_, double y_ 色度白色点(例:x=0.3127、y=0.329)
classType
ClassType void  ClassType class_ 画像ストレージクラス。DirectClass画像からPseudoClass画像への変換では、パレットのサイズ(256色または65535色)が限られているため、色が失われる可能性があることに注意してください。
clipMask
画像 void const Image &clipMask_ クリップマスク画像を現在の画像に関連付けます。クリップマスク画像は、現在の画像と同じ寸法である必要があります。そうでない場合は例外がスローされます。クリッピングは、クリップマスク画像でピクセルが透明な場所で行われます。既存のクリップマスクを解除するには、無効な画像を渡します。
colorFuzz
double void double fuzz_ この距離内にある色は等しいと見なされます。多くのアルゴリズムがターゲットの色を検索します。デフォルトでは、色は正確である必要があります。このオプションを使用すると、RGB空間でターゲットの色に近い色を一致させることができます。
colorMap
size_t index_ size_t index_, const Color &color_ カラーマップインデックスの色。
colorMapSize
size_t
void
size_t entries_
カラーマップのエントリ数。カラーマップのサイズを設定すると、カラーマップが拡張または切り捨てられる場合があります。サポートされる最大エントリ数はMaxColormapSize定数で指定され、ImageMagickがコンパイルされたときのQuantumDepthの値によって異なります。サポートされているよりも多くのエントリが要求された場合は例外がスローされます。画像のカラーマップインデックスが有効なカラーマップエントリを参照するように、カラーマップを切り捨てる際には注意が必要です。
colorSpace
ColorspaceType colorSpace_ void ColorspaceType colorSpace_ 画像ピクセルカラーを表すために使用されるカラースペース(例:CMYK)。画像ピクセルは、CMY(K)の場合を除いて、常にRGB(A)として保存されます。
columns
size_t void   画像の幅
コメント
string void   画像のコメント
compose
CompositeOperator void CompositeOperator compose_ コンポジションが暗黙的に使用される場合(画像のフラット化など)に使用されるコンポジション演算子。
compress-
CompressionType void CompressionType compressType_ 画像の圧縮タイプ。デフォルトは、指定された画像ファイルの圧縮タイプです。
debug
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」を返します。
density
Geometry   (デフォルト 72x72) void const Geometry &density_ 画像の垂直および水平解像度(ピクセル単位)。このオプションは、PostscriptまたはPortable Documentページのデコード時に画像の密度を指定します。多くの場合、psPageSize と一緒に使用されます。
depth
 size_t (8-32) void size_t depth_ 画像の深度。raw画像の読み書き時、または出力形式が複数の深度をサポートする場合に、ビット深度を指定するために使用します。デフォルトは、ImageMagickがコンパイルされた量子深度です。
endian
EndianType void EndianType endian_ エンディアンをサポートする形式に対してエンディアンオプションを指定(または取得)します。
directory
string void   イメージモンタージュ内のタイル名
file
FILE * FILE * FILE *file_ 画像ファイル記述子。
fileName
string void const string &fileName_ 画像ファイル名。
fileSize
off_t void   ディスク上の画像のバイト数
fillColor
void const Color &fillColor_ 描画オブジェクトを塗りつぶすときに使用する色
fillPattern
画像 void const Image &fillPattern_ 描画オブジェクトを塗りつぶすときに使用するパターン画像。
fillRule
FillRule void const Magick::FillRule &fillRule_ 描画オブジェクトを塗りつぶすときに使用するルール。
filterType
FilterTypes void FilterTypes filterType_ 画像のサイズ変更時に使用するフィルタ。使用する縮小フィルタは、画像のサイズ変更に必要な時間と結果の品質に大きな影響を与えます。デフォルトのフィルタはLanczosで、ほとんどの画像を縮小する場合に高品質な結果を生み出すことが示されています。
font
string void const string &font_ テキストレンダリングフォント。フォントが完全に修飾されたXサーバーフォント名の場合、フォントはXサーバーから取得されます。TrueTypeフォントを使用するには、TrueTypeファイル名の前に@を付けます。それ以外の場合は、Postscriptフォント名(例:"helvetica")を指定します。
fontPointsize
size_t void size_t pointSize_ テキストレンダリングフォントのポイントサイズ
fontTypeMetrics
TypeMetric const std::string &text_, TypeMetric *metrics   指定されたtextと現在のfontおよびfontPointSizeの設定を使用して、フォントタイプメトリックでメトリックを更新します。
format
string void   詳細な画像形式の説明。
ガンマ
double (一般的な範囲は0.8~2.3) void   画像のガンマレベル。2つの異なるワークステーションで表示される同じカラー画像は、ディスプレイモニターの違いにより異なって見える場合があります。この色の違いを調整するには、ガンマ補正を使用します。
geometry
ジオメトリ void   エンコード時の画像の推奨サイズ。
gifDispose-
メソッド
size_t
{ 0 = 破棄が指定されていない、
1 = グラフィックを破棄しない、
3 = グラフィックを背景色で上書きする、
4 = グラフィックを前のグラフィックで上書きする。 }
void size_t disposeMethod_ GIF破棄メソッド。このオプションは、GIFアニメーションを作成するときに、連続するフレームをどのようにレンダリングするか(前のフレームをどのように破棄するか)を制御するために使用されます。
iccColorProfile
Blob void const Blob &colorProfile_ ICCカラープロファイル。Blobを介して提供されます。これは、Magick++ /およびImageMagickが現在このデータ構造のフォーマットを直接サポートしていないためです。仕様は、ICCカラープロファイルの形式について国際カラーコンソーシアムから入手できます。
interlace-
InterlaceType void InterlaceType interlace_ インターレーススキームのタイプ(デフォルトはNoInterlace)。このオプションは、RGBやYUVなどのraw画像形式のインターレーススキームのタイプを指定するために使用されます。NoInterlaceはインターレースしないことを意味し、LineInterlaceはスキャンラインインターレースを使用し、PlaneInterlaceはプレーンインターレースを使用します。PartitionInterlacePlaneInterlaceに似ていますが、異なるプレーンが個々のファイル(例:image.R、image.G、およびimage.B)に保存されます。インターレースされたGIFまたはプログレッシブJPEG画像を作成するには、LineInterlaceまたはPlaneInterlaceを使用します。
iptcProfile
Blob void const Blob & iptcProfile_ IPTCプロファイル。Blobを介して提供されます。これは、Magick++およびImageMagickが現在このデータ構造のフォーマットを直接サポートしていないためです。仕様は、IPTCプロファイルについて国際プレス電気通信評議会から入手できます。
ラベル
string void const string &label_ 画像のラベル
magick
string void  const string &magick_ 画像形式を取得します(例:"GIF")
alpha
const bool void const bool alphaFlag_ 画像が透明度(アルファチャネル)をサポートしている
matteColor
void const Color &matteColor_ 画像マット(フレーム)の色
meanError-
PerPixel
double void   画像が減色されたときに計算された、ピクセルあたりの平均誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。
modulusDepth
size_t
void
size_t depth_
画像のモジュラス深度(精度を損なうことなく赤/緑/青のコンポーネントをサポートするために必要な最小ビット数)。ピクセルモジュラス深度は、現在の値よりも小さい値を指定することで小さくすることができ、ピクセルを更新して(精度を下げて)新しい深度にします。ピクセルモジュラス深度は、この方法を使用して現在の値以上に大きくすることはできません。
monochrome
bool void bool flag_ 画像を白黒に変換する
montage-
ジオメトリ
ジオメトリ void   イメージモンタージュ内のタイルサイズとオフセット。モンタージュ画像でのみ有効です。
normalized-
MaxError
double void   画像が減色されたときに計算された、ピクセルあたりの正規化された最大誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。
normalized-
MeanError
double void   画像が減色されたときに計算された、ピクセルあたりの正規化された平均誤差。このパラメータは、verboseがtrueに設定されていて、画像が量子化されたばかりの場合にのみ有効です。
orientation
OrientationType void
OrientationType orientation_ 画像の向き。DPXやTIFFなど、一部のファイル形式でサポートされています。正しい向きにするのに役立ちます。
packets
size_t void   ランレングスエンコードされたパケットの数
画像内
packetSize
size_t void   各ピクセルパケットのバイト数
page
ジオメトリ void const Geometry &pageSize_ 画像キャンバスの推奨サイズと位置。

このオプションを使用して、Postscriptページのサイズと位置を1インチあたりのドット数で指定するか、TEXTページのサイズと位置をピクセルで指定します。このオプションは通常、densityと組み合わせて使用されます。

Pageは、GIF画像を(アニメーションのシーンなどのために)配置するためにも使用できます。

pixelColor
ssize_t x_, ssize_t y_ ssize_t x_, ssize_t y_, const Color &color_ 位置x&yでのピクセルカラーを取得/設定します。
profile
Blob
const std::string name_
const std::string name_, const Blob &colorProfile_
名前付きプロファイルの取得/設定/削除。有効な名前には、"*"、"8BIM"、"ICM"、"IPTC"、またはユーザー/形式定義のプロファイル名が含まれます。
quality
size_t (0~100) void size_t quality_ JPEG/MIFF/PNG圧縮レベル(デフォルトは75)。
quantize-
Colors
size_t void size_t colors_ 画像内の推奨色数。画像内の実際の色数は、要求よりも少ない場合がありますが、多くなることはありません。このオプションで指定されたよりも固有の色が少ない画像では、重複または未使用の色が削除されます。
quantize-
ColorSpace
ColorspaceType void ColorspaceType colorSpace_ 色を量子化するカラースペース(デフォルトはRGB)。経験的証拠によれば、YUVやYIQなどのカラースペースにおける距離は、RGB空間における距離よりも知覚的な色の違いに密接に対応しています。これらのカラースペースは、画像を減色する場合により良い結果をもたらす可能性があります。
quantize-
Dither
bool void bool flag_ Floyd/Steinbergエラー拡散を画像に適用します。ディザリングの基本的な戦略は、いくつかの隣接するピクセルの強度を平均化することにより、強度解像度を空間解像度とトレードオフすることです。色を減らすときに重度の輪郭が発生する画像は、このオプションで改善できます。このオプションを有効にするには、quantizeColorsまたはmonochromeオプションを設定する必要があります。
quantize-
TreeDepth
size_t  void size_t treeDepth_ 量子化色分類ツリーの深さ。値0または1を使用すると、減色アルゴリズムに最適なツリー深さを選択できます。2~8の値を使用して、ツリーの深さを手動で調整できます。
rendering-
Intent
RenderingIntent void RenderingIntent render_ レンダリングインテントのタイプ
resolution-
Units
ResolutionType void ResolutionType units_ 画像解像度の単位
rows
size_t void   画像内のピクセル行数
scene
size_t void size_t scene_ 画像シーン番号
signature
string bool force_ = false   画像MD5署名。署名を再計算するには、force_を「true」に設定します。
size
ジオメトリ void const Geometry &geometry_ raw画像の幅と高さ(幅と高さの情報をサポートしていない画像)。サイズは、マルチ解像度形式(例:Photo CD、JBIG、またはJPEG)から読み取られる画像サイズに影響を与えるためにも使用できます。
strip
void 画像からすべてのプロファイルとコメントを削除します。
strokeAntiAlias
bool void bool flag_ オブジェクトのアウトラインを描画するときにアンチエイリアスを有効または無効にします。
strokeColor
void const Color &strokeColor_ オブジェクトのアウトラインを描画するときに使用する色
strokeDashOffset
size_t void double strokeDashOffset_ 破線パターンを使用して描画するときに、破線の開始までの破線パターンの距離を指定します(デフォルトは0)。
strokeDashArray
const double* void const double* strokeDashArray_ パスをストロークするために使用される破線とギャップのパターンを指定します。strokeDashArrayは、ユーザー単位で交互の破線とギャップの長さ(ピクセル単位)を指定する、ゼロで終了する数値の配列を表します。奇数の値が指定された場合、値のリストが繰り返されて、偶数の値が得られます。一般的なstrokeDashArray_配列には、メンバー5 3 2 0が含まれている可能性があります。ここで、ゼロの値はパターン配列の終わりを示します。
strokeLineCap
LineCap void LineCap lineCap_ ストロークされたパス(またはその他のベクターシェイプ)の角で使用する形状を指定します。LineJoin の値は、UndefinedJoin、MiterJoin、RoundJoin、BevelJoin です。
strokeLineJoin
LineJoin void LineJoin lineJoin_ ストロークされたパス(またはその他のベクターシェイプ)の角で使用する形状を指定します。LineJoin の値は、UndefinedJoin、MiterJoin、RoundJoin、BevelJoin です。
strokeMiterLimit
size_t void size_t miterLimit_ マイターリミットを指定します。2つの線分が鋭角で交わり、「lineJoin」にマイター結合が指定されている場合、マイターがパスのストロークに使用される線の太さを大幅に超えて伸びる可能性があります。 'miterLimit' は、マイターの長さと 'lineWidth' の比率に制限を課します。このパラメータのデフォルト値は 4 です。
strokeWidth
double void double strokeWidth_ ベクターオブジェクトを描画する際に使用するストローク幅(デフォルトは1)
strokePattern
画像 void const Image &strokePattern_ オブジェクトのストローク(アウトライン)を描画中に使用するパターン画像。
subImage
size_t void size_t subImage_ 画像シーケンスのサブイメージ
subRange
size_t void size_t subRange_ ベース画像に対する画像の数
textEncoding
string
void
const std::string &encoding_
テキスト注釈に使用するコードセットを指定します。現時点で指定できる文字エンコーディングは、 Unicode をバイトシーケンスとして表現するための "UTF-8" のみです。デフォルトのASCIIエンコーディングを使用するには、空の文字列を指定します。Unicodeを使用するテキスト注釈を正常に行うには、Unicodeをサポートするように設計されたフォントが必要になる場合があります。
tileName
string void const string &tileName_ タイル名
totalColors
size_t void   画像内の色の数
type
ImageType void ImageType 画像のタイプ。
verbose
bool void bool verboseFlag_ 画像に関する詳細情報を表示
view
string void const string &view_ FlashPixの表示パラメータ。
virtualPixelMethod
VirtualPixelMethod void VirtualPixelMethod virtualPixelMethod_ 画像の仮想ピクセルメソッド。
x11Display
string (例: "hostname:0.0") void const string &display_ 表示、フォントの取得、または画像のキャプチャを行うための X11 ディスプレイ
xResolution
double void   画像のx解像度
yResolution
double void   画像のy解像度

低レベル画像ピクセルアクセス

Quantum 型)の画像のピクセルは、画像ピクセルキャッシュ を介して直接アクセスできます。画像ピクセルキャッシュは、実際の画像ピクセル(メモリ内、ディスクファイルからメモリマップされている、または完全にディスク上にある可能性があります)への矩形ウィンドウです。画像ピクセルキャッシュにアクセスするための2つのインターフェイスが存在します。ここで説明するインターフェイス(Imageクラスの一部)は、一度に1つのビューのみをサポートします。同時ピクセルビュー(最大行数まで)をサポートするより抽象的なインターフェイスについては、Pixels クラスを参照してください。類似として、ここで説明するインターフェイスは、stdioのgets()がfgets()に関連するように、Pixels クラスに関連します。 Pixels クラスは、より一般的な形式のインターフェイスを提供します。

getPixels()を介して既存の画像ピクセルを取得します。setPixels()を使用して新しいピクセル領域を作成します。

画像の現在の世代のみが変更されるようにするには、ImageのmodifyImage()メソッドを呼び出して、基礎となる画像の参照カウントを1に減らす必要があります。これを行わないと、Imageのコピーまたは構築時に参照カウントを使用するため、前の世代の画像が変更される可能性があります。

オペレーティングシステムの機能、およびウィンドウと画像の関係に応じて、ピクセルキャッシュは、選択したウィンドウのピクセルのコピー、または実際の画像ピクセルである可能性があります。いずれにせよ、syncPixels()を呼び出すと、ベース画像が変更されたピクセルキャッシュの内容で更新されます。メソッドreadPixels()は、QuantumTypesに従って、外部ピクセルデータ形式をピクセルキャッシュにコピーすることをサポートしています。メソッドwritePixels()は、QuantumTypesで指定された形式に従って、キャッシュ内のピクセルを外部ピクセル表現にコピーすることをサポートしています。

ピクセル領域は、次の例に示すように、ピクセルにアクセス、アドレス指定、および更新できる小さな画像です。

cache

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");

イメージキャッシュは、次のメソッドをサポートしています。
 

イメージキャッシュメソッド
メソッド
戻り値
シグネチャ
説明
getConstPixels
const Quantum * const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ 指定された矩形領域で定義されたように、画像からピクセルをピクセルキャッシュに転送します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。
getConstMetacontent
const void* void 以前のgetPixel()、getConstPixels()、またはsetPixels()呼び出しに対応する画像ピクセルメタコンテンツへのポインタを返します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。ピクセルメタコンテンツは、各エントリがx,yピクセル位置に対応するvoid型の配列を表します。
getMetacontent
void* void 最後のgetConstPixelsgetPixels、またはsetPixels呼び出しによって要求されたピクセル領域に対応する画像ピクセルメタコンテンツへのポインタを返します。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。
getPixels
Quantum * const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ 指定された矩形領域で定義されたように、画像からピクセルをピクセルキャッシュに転送します。変更されたピクセルは、syncPixelsを介して後で画像に転送できます。返されたポインタは、次のgetPixel、getConstPixels()、またはsetPixels()呼び出しまで有効であり、ユーザーによって解放されるべきではありません。
setPixels
Quantum * const ssize_t x_, const ssize_t y_, const size_t columns_, const size_t rows_ 領域矩形によって定義されたように、画像ピクセルを格納するためのピクセルキャッシュ領域を割り当てます。この領域は、syncPixelsを介して後でピクセルキャッシュから画像に転送されます。返されたポインタは、次のgetPixel、getConstPixels、またはsetPixels呼び出しまで有効であり、ユーザーによって解放されるべきではありません。
syncPixels
void void イメージキャッシュピクセルを画像に転送します。
readPixels
void QuantumTypes quantum_, unsigned char *source_, バッファまたはファイルから1つ以上のピクセルコンポーネントを画像のピクセルキャッシュに転送します。ReadPixelsは、通常、画像デコーダーをサポートするために使用されます。転送される領域は、先行するsetPixels呼び出しによって設定された領域に対応します。
writePixels
void QuantumTypes quantum_, unsigned char *destination_ 画像のピクセルキャッシュから1つ以上のピクセルコンポーネントをバッファまたはファイルに転送します。WritePixelsは、通常、画像エンコーダーをサポートするために使用されます。転送される領域は、先行するgetPixelsまたはgetConstPixels呼び出しによって設定された領域に対応します。