このページでは

QImage Class

QImage クラスは、ピクセルデータへの直接アクセスを可能にする、ハードウェアに依存しない画像表現を提供し、描画デバイスとして使用することができます。詳細...

ヘッダー: #include <QImage>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承元: QPaintDevice

注:このクラスのすべての関数は再入可能です。

パブリック型

enum Format { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, Format_RGB32, …, Format_CMYK8888 }
enum InvertMode { InvertRgb, InvertRgba }

パブリック関数

QImage()
QImage(const char *const[] xpm)
QImage(const QSize &size, QImage::Format format)
QImage(const QString &fileName, const char *format = nullptr)
QImage(int width, int height, QImage::Format format)
QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)
QImage(const QImage &image)
QImage(QImage &&other)
virtual ~QImage()
bool allGray() const
void applyColorTransform(const QColorTransform &transform)
(since 6.8) void applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor)
int bitPlaneCount() const
uchar *bits()
const uchar *bits() const
qsizetype bytesPerLine() const
qint64 cacheKey() const
QRgb color(int i) const
int colorCount() const
QColorSpace colorSpace() const
QList<QRgb> colorTable() const
(since 6.4) QImage colorTransformed(const QColorTransform &transform) const &
(since 6.8) QImage colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
(since 6.4) QImage colorTransformed(const QColorTransform &transform) &&
(since 6.8) QImage colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
const uchar *constBits() const
const uchar *constScanLine(int i) const
void convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
void convertToColorSpace(const QColorSpace &colorSpace)
(since 6.8) void convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)
QImage convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
QImage convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const
(since 6.0) QImage convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
(since 6.0) QImage convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage convertedToColorSpace(const QColorSpace &colorSpace) const
(since 6.8) QImage convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
(since 6.8) QImage convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage copy(const QRect &rectangle = QRect()) const
QImage copy(int x, int y, int width, int height) const
QImage createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const
QImage createHeuristicMask(bool clipTight = true) const
QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const
int depth() const
(since 6.2) QSizeF deviceIndependentSize() const
qreal devicePixelRatio() const
int dotsPerMeterX() const
int dotsPerMeterY() const
void fill(uint pixelValue)
void fill(Qt::GlobalColor color)
void fill(const QColor &color)
(since 6.9) void flip(Qt::Orientations orient = Qt::Vertical)
(since 6.9) QImage flipped(Qt::Orientations orient = Qt::Vertical) &&
(since 6.9) QImage flipped(Qt::Orientations orient = Qt::Vertical) const &
QImage::Format format() const
bool hasAlphaChannel() const
int height() const
void invertPixels(QImage::InvertMode mode = InvertRgb)
bool isGrayscale() const
bool isNull() const
bool load(const QString &fileName, const char *format = nullptr)
bool load(QIODevice *device, const char *format)
(since 6.2) bool loadFromData(QByteArrayView data, const char *format = nullptr)
bool loadFromData(const QByteArray &data, const char *format = nullptr)
bool loadFromData(const uchar *data, int len, const char *format = nullptr)
(since 6.0, until 6.13) void mirror(bool horizontal = false, bool vertical = true)
(until 6.13) QImage mirrored(bool horizontal = false, bool vertical = true) &&
(until 6.13) QImage mirrored(bool horizontal = false, bool vertical = true) const &
QPoint offset() const
QRgb pixel(const QPoint &position) const
QRgb pixel(int x, int y) const
QColor pixelColor(const QPoint &position) const
QColor pixelColor(int x, int y) const
QPixelFormat pixelFormat() const
int pixelIndex(const QPoint &position) const
int pixelIndex(int x, int y) const
QRect rect() const
bool reinterpretAsFormat(QImage::Format format)
(since 6.0) void rgbSwap()
QImage rgbSwapped() &&
QImage rgbSwapped() const &
bool save(const QString &fileName, const char *format = nullptr, int quality = -1) const
bool save(QIODevice *device, const char *format = nullptr, int quality = -1) const
QImage scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QImage scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
QImage scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
QImage scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
uchar *scanLine(int i)
const uchar *scanLine(int i) const
void setAlphaChannel(const QImage &alphaChannel)
void setColor(int index, QRgb colorValue)
void setColorCount(int colorCount)
void setColorSpace(const QColorSpace &colorSpace)
void setColorTable(const QList<QRgb> &colors)
void setDevicePixelRatio(qreal scaleFactor)
void setDotsPerMeterX(int x)
void setDotsPerMeterY(int y)
void setOffset(const QPoint &offset)
void setPixel(const QPoint &position, uint index_or_rgb)
void setPixel(int x, int y, uint index_or_rgb)
void setPixelColor(const QPoint &position, const QColor &color)
void setPixelColor(int x, int y, const QColor &color)
void setText(const QString &key, const QString &text)
QSize size() const
qsizetype sizeInBytes() const
void swap(QImage &other)
QString text(const QString &key = QString()) const
QStringList textKeys() const
CGImageRef toCGImage() const
(since 6.0) HBITMAP toHBITMAP() const
(since 6.0) HICON toHICON(const QImage &mask = {}) const
QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
bool valid(const QPoint &pos) const
bool valid(int x, int y) const
int width() const
operator QVariant() const
bool operator!=(const QImage &image) const
QImage &operator=(QImage &&other)
QImage &operator=(const QImage &image)
bool operator==(const QImage &image) const

静的パブリックメンバー

(since 6.2) QImage fromData(QByteArrayViewdata, const char*format= nullptr)
QImage(QByteArrayView data, const char *format = nullptr) fromData(const QByteArray&data, const char*format= nullptr)
QImage fromData(const uchar*data, intsize, const char*format= nullptr)
(since 6.0) QImage fromHBITMAP(HBITMAPhbitmap)
(since 6.0) QImage fromHICON(HICONicon)
QImage::Format toImageFormat(QPixelFormatフォーマット)
QPixelFormat toPixelFormat(QImage::Formatformat)
QTransform trueMatrix(const QTransform&matrix, intwidth, intheight)
QImageCleanupFunction
QDataStream &operator<<(QDataStream &stream, const QImage &image)
QDataStream &operator>>(QDataStream &stream, QImage &image)

詳細な説明

Qt には、画像データを扱うための 4 つのクラス、QImage、QPixmap 、QBitmap 、およびQPicture が用意されています。QImage は I/O およびピクセルへの直接アクセスや操作のために設計・最適化されており、QPixmap は画面上での画像表示のために設計・最適化されています。QBitmap は、QPixmap を継承し、深度を 1 に保証するだけの便宜上のクラスです。 最後に、QPicture クラスは、QPainter コマンドを記録および再生するペイントデバイスです。

QImage はQPaintDevice のサブクラスであるため、QPainter を使用して画像に直接描画することができます。QImage でQPainter を使用する場合、描画は現在の GUI スレッドとは別のスレッドで実行することができます。

QImageクラスは、Format 列挙型で定義されているいくつかの画像フォーマットをサポートしています。これらには、Qt 4.xのすべてのバージョンで利用可能な、モノクロ、8ビット、32ビット、およびアルファブレンド画像が含まれます。

QImage は、画像に関するさまざまな情報を取得するために使用できる一連の関数を提供しています。また、画像の変換を可能にするいくつかの関数も用意されています。

QImageクラスは暗黙的なデータ共有を使用しているため、QImageオブジェクトは値渡しで渡すことができます。また、QImageオブジェクトはストリーム処理や比較を行うことも可能です。

注: Qtの静的ビルドでQImageオブジェクトを読み込みたい場合は 、『Plugin HowTo』を参照してください。

警告: QImage::Format_Indexed8 またはQImage::Format_CMYK8888 形式の QImage への描画は サポートされていません。

画像ファイルの読み込みと書き込み

QImage には、画像ファイルをロードするいくつかの方法があります。ファイルは、QImage オブジェクトの生成時にロードすることも、後でload() またはloadFromData() 関数を使用してロードすることもできます。 また、QImage には、指定されたデータから QImage を生成する静的関数 `fromData()` も用意されています。画像を読み込む際、ファイル名はディスク上の実際のファイル、あるいはアプリケーションに埋め込まれたリソースのいずれかを指すことができます。アプリケーションの実行ファイルに画像やその他のリソースファイルを埋め込む方法の詳細については、「Qt リソースシステムの概要」を参照してください。

QImageオブジェクトを保存するには、save()関数を呼び出すだけです。

サポートされているファイル形式の完全な一覧は、QImageReader::supportedImageFormats() およびQImageWriter::supportedImageFormats() 関数を通じて確認できます。新しいファイル形式はプラグインとして追加可能です。デフォルトで、Qt は以下の形式をサポートしています:

形式説明Qtでのサポート状況
BMPWindows ビットマップ読み取り/書き込み
GIFグラフィック・インターチェンジ・フォーマット (オプション)読み取り
JPGJoint Photographic Experts Group読み取り/書き込み
JPEGJoint Photographic Experts Group読み取り/書き込み
PNGPortable Network Graphics読み取り/書き込み
PBMポータブル・ビットマップ読み取り
PGMポータブル・グレイマップ読み取り
PPMポータブル・ピクマップ読み取り/書き込み
XBMX11 ビットマップ読み取り/書き込み
XPMX11 ピクマップ読み取り/書き込み

画像情報

QImage は、画像に関するさまざまな情報を取得するために使用できる一連の関数を提供しています:

利用可能な関数
ジオメトリsize()、width()、height()、dotsPerMeterX()、およびdotsPerMeterY() 関数は、画像のサイズやアスペクト比に関する情報を提供します。

rect() 関数は、画像を囲む矩形を返します。valid() 関数は、指定された座標の組がこの矩形内にあるかどうかを判定します。offset() 関数は、他の画像に対して相対的に配置する際に、画像をオフセットするピクセル数を返します。このオフセット量は、setOffset() 関数を使用して調整することも可能です。

色ピクセルの色は、その座標をpixel()関数に渡すことで取得できます。pixel()関数は、画像のフォーマットに関係なく、色をQRgb 値として返します。

モノクロおよび 8 ビット画像の場合、colorCount() 関数およびcolorTable() 関数は、画像データの保存に使用される色成分に関する情報を提供します。colorTable() 関数は、画像のカラーテーブル全体を返します。 個々のエントリを取得するには、pixelIndex() 関数を使用して指定された座標ペアのピクセルインデックスを取得し、次にcolor() 関数を使用して色を取得します。なお、8ビット画像を手動で作成する場合は、その画像に対して有効なカラーテーブルを設定する必要があります。

hasAlphaChannel()関数は、画像のフォーマットがアルファチャンネルに対応しているかどうかを判定します。allGray()およびisGrayscale()関数は、画像の色がすべてグレースケールであるかどうかを判定します。

「Pixel Manipulation 」および「Image Transformations 」のセクションも参照してください。

テキストtext() 関数は、指定されたテキストキーに関連付けられた画像テキストを返します。画像のテキストキーは、textKeys() 関数を使用して取得できます。画像のテキストを変更するには、setText() 関数を使用します。
低レベル情報depth() 関数は、画像の深度を返します。サポートされている深度は、1 ビット(モノクロ)、8 ビット、16 ビット、24 ビット、および 32 ビットです。bitPlaneCount() 関数は、それらのビットのうち何ビットが使用されているかを示します。詳細については、「Image Formats 」のセクションを参照してください。

format()、bytesPerLine()、およびsizeInBytes() 関数は、画像に格納されているデータに関する低レベル情報を提供します。

cacheKey() 関数は、この QImage オブジェクトの内容を一意に識別する番号を返します。

ピクセルの操作

画像のピクセルを操作するために使用される関数は、画像形式によって異なります。その理由は、モノクロおよび8ビット画像がインデックスベースであり、カラールックアップテーブルを使用するのに対し、32ビット画像はARGB値を直接格納しているためです。画像形式の詳細については、「Image Formats 」のセクションを参照してください。

32ビット画像の場合、setPixel() 関数を使用すると、指定された座標にあるピクセルの色を、ARGB 4値組として指定された任意の色に変更できます。 適切なQRgb 値を生成するには、qRgb() 関数(指定されたRGB値にデフォルトのアルファ成分を加算し、不透明な色を作成する)またはqRgba() 関数を使用します。例:

32ビット
ARGBカラー値を持つ3×3ピクセルのグリッド
QImage image(3, 3, QImage::Format_RGB32);
QRgb value;

value = qRgb(189, 149, 39); // 0xffbd9527
image.setPixel(1, 1, value);

value = qRgb(122, 163, 39); // 0xff7aa327
image.setPixel(0, 1, value);
image.setPixel(1, 0, value);

value = qRgb(237, 187, 51); // 0xffedba31
image.setPixel(2, 1, value);

8ビットおよびモノクロ画像の場合、ピクセル値は画像のカラーテーブルからのインデックスにすぎません。 したがって、setPixel() 関数は、指定された座標にあるピクセルの色を、画像のカラーテーブル内の事前定義された色に変更するためにのみ使用できます。つまり、ピクセルのインデックス値のみを変更できるということです。画像のカラーテーブルを変更したり、色を追加したりするには、setColor() 関数を使用してください。

qRgbカラーテーブルのエントリは、QRgb 値としてエンコードされたARGBの4値組です。()関数やqRgba()関数を使用して、setColor()関数で使用するための適切なQRgb 値を作成してください。例:

8ビット
3×3ピクセルのグリッド、インデックスカラーおよびカラーテーブルを使用
QImage image(3, 3, QImage::Format_Indexed8);
QRgb value;

value = qRgb(122, 163, 39); // 0xff7aa327
image.setColor(0, value);

value = qRgb(237, 187, 51); // 0xffedba31
image.setColor(1, value);

value = qRgb(189, 149, 39); // 0xffbd9527
image.setColor(2, value);

image.setPixel(0, 1, 0);
image.setPixel(1, 0, 0);
image.setPixel(1, 1, 2);
image.setPixel(2, 1, 1);

色チャンネルあたり8ビットを超える画像の場合。setPixelColor()およびpixelColor()メソッドを使用すると、QColor 値の設定および取得が可能です。

QImage には、指定されたインデックスのスキャンラインにあるピクセルデータへのポインタを返す `scanLine()` 関数や、最初のピクセルデータへのポインタを返す `bits()` 関数(これは `scanLine(0)` と同等です)も用意されています。

画像フォーマット

QImageに格納される各ピクセルは、整数で表されます。整数のサイズはフォーマットによって異なります。QImageは、Format 列挙型で定義されるいくつかの画像フォーマットをサポートしています。

モノクロ画像は、最大2色からなるカラーテーブルへの1ビットのインデックスを使用して格納されます。モノクロ画像には、ビッグエンディアン(MSBファースト)とリトルエンディアン(LSBファースト)の2種類のビット順があります。

8ビット画像は、カラーテーブルへの8ビットインデックスを使用して格納されます。つまり、1ピクセルあたり1バイトのデータ量となります。カラーテーブルはQList<QRgb>であり、QRgb のtypedefは、0xAARRGGBBの形式でARGBの4要素を含むunsigned intと同等です。

32ビット画像にはカラーテーブルがなく、代わりに各ピクセルにQRgb 値が含まれます。 32 ビット画像には、RGB(すなわち 0xffRRGGBB)、ARGB、およびプリマルチプライド ARGB 値をそれぞれ格納する 3 種類の形式があります。プリマルチプライド形式では、赤、緑、青の各チャンネルに、255 で割ったアルファ成分が乗算されます。

画像のフォーマットは、format() 関数を使用して取得できます。画像を別のフォーマットに変換するには、convertToFormat() 関数を使用します。allGray() およびisGrayscale() 関数は、カラー画像をグレースケール画像に安全に変換できるかどうかを判定します。

画像の変換

QImage は、元の画像を変形させた新しい画像を作成するための多数の関数をサポートしています。createAlphaMask() 関数は、この画像のアルファバッファから 1 bpp のマスクを作成して返します。また、createHeuristicMask() 関数は、この画像用の 1 bpp のヒューリスティックマスクを作成して返します。 後者の関数は、四隅のいずれかから色を選択し、すべてのエッジからその色のピクセルを削り取ることで機能します。

mirrored() 関数は、指定された方向に画像を鏡像反転して返し、scaled() 関数は、指定された寸法の矩形にスケーリングされた画像のコピーを返し、rgbSwapped() 関数は、RGB 画像から BGR 画像を構築します。

scaledToWidth() 関数とscaledToHeight() 関数は、画像の拡大縮小されたコピーを返します。

transformed() 関数は、指定された変換行列と変換モードを用いて変換された画像のコピーを返します。内部的には、不要な平行移動を補正するために変換行列が調整されます。つまり、transformed() は、元の画像のすべての変換された点を包含する最小の画像を返します。静的なtrueMatrix() 関数は、画像の変換に使用された実際の行列を返します。

また、画像の属性をその場で変更するための関数もあります:

関数説明
setDotsPerMeterX()物理的な1メートルに水平方向に収まるピクセル数を設定することで、アスペクト比を定義します。
setDotsPerMeterY()物理的な1メートルに収まる垂直方向のピクセル数を設定することで、アスペクト比を定義します。
fill()指定されたピクセル値で画像全体を塗りつぶします。
invertPixels()指定されたInvertMode 値を使用して、画像内のすべてのピクセル値を反転させます。
setColorTable()カラーインデックスの変換に使用するカラーテーブルを設定します。モノクロおよび8ビット形式のみ対応しています。
setColorCount()カラーテーブルのサイズを変更します。モノクロおよび8ビット形式のみ対応しています。

関連項目: QImageReader 、QImageWriter 、QPixmap 、QSvgRenderer 、画像合成の例、および落書きの例。

メンバ型のドキュメント

enum QImage::Format

Qt Image Formats では、以下の画像形式が利用可能です。表の後の注記を参照してください。

定数値説明
QImage::Format_Invalid0画像が無効です。
QImage::Format_Mono1画像は 1 ピクセルあたり 1 ビットで保存されます。バイトは最上位ビット (MSB) から順にパッキングされます。
QImage::Format_MonoLSB2画像は 1 ピクセルあたり 1 ビットで保存されます。バイトは最下位ビット (LSB) から先頭に配置されます。
QImage::Format_Indexed83画像は、カラーマップへの 8 ビットインデックスを使用して保存されています。
QImage::Format_RGB324画像は 32 ビット RGB 形式 (0xffRRGGBB) で保存されています。
QImage::Format_ARGB325画像は、32 ビット ARGB 形式(0xAARRGGBB)で保存されています。
QImage::Format_ARGB32_Premultiplied6画像は、事前乗算された 32 ビット ARGB 形式(0xAARRGGBB)で保存されます。つまり、赤、緑、青の各チャンネルに、255 で割ったアルファ成分が乗算されます。 (RR、GG、または BB の値がアルファチャンネルよりも大きい場合、結果は未定義となります。)特定の操作(アルファブレンディングを使用した画像合成など)は、通常の ARGB32 よりも、プリマルチプライド ARGB32 を使用した方が高速に実行されます。
QImage::Format_RGB167画像は 16 ビット RGB 形式(5-6-5)で保存されます。
QImage::Format_ARGB8565_Premultiplied8画像は、プリマルチプライされた 24 ビット ARGB 形式(8-5-6-5)で保存されます。
QImage::Format_RGB6669画像は 24 ビット RGB 形式 (6-6-6) を使用して保存されます。使用されない最上位ビットは常に 0 です。
QImage::Format_ARGB6666_Premultiplied10画像は、プリマルチプライド 24 ビット ARGB 形式 (6-6-6-6) で保存されます。
QImage::Format_RGB55511画像は 16 ビット RGB 形式 (5-5-5) で保存されています。使用されていない最上位ビットは常に 0 です。
QImage::Format_ARGB8555_Premultiplied12画像は、プリマルチプライド 24 ビット ARGB 形式(8-5-5-5)で保存されます。
QImage::Format_RGB88813画像は、24 ビット RGB 形式(8-8-8)で保存されます。
QImage::Format_RGB44414画像は 16 ビット RGB 形式(4-4-4)で保存されています。未使用のビットは常に 0 です。
QImage::Format_ARGB4444_Premultiplied15画像は、プリマルチプライド 16 ビット ARGB 形式(4-4-4-4)で保存されます。
QImage::Format_RGBX8888 (since Qt 5.2)16画像は、32 ビットのバイト順 RGB(x) 形式 (8-8-8-8) を使用して保存されます。これは Format_RGBA8888 と同じですが、アルファは常に 255 でなければなりません。
QImage::Format_RGBA8888 (since Qt 5.2)17画像は、32 ビットのバイト順 RGBA 形式 (8-8-8-8) を使用して保存されます。
QImage::Format_RGBA8888_Premultiplied (since Qt 5.2)18画像は、プリマルチプライされた 32 ビットのバイト順 RGBA 形式 (8-8-8-8) を使用して保存されます。
QImage::Format_BGR30 (since Qt 5.4)19画像は、32 ビットの BGR 形式 (x-10-10-10) を使用して保存されます。
QImage::Format_A2BGR30_Premultiplied (since Qt 5.4)20画像は、32 ビットの事前乗算済み ABGR 形式 (2-10-10-10) を使用して保存されます。
QImage::Format_RGB30 (since Qt 5.4)21画像は、32 ビットの RGB 形式 (x-10-10-10) で保存されます。
QImage::Format_A2RGB30_Premultiplied (since Qt 5.4)22画像は、32 ビットのプリマルチプライド ARGB 形式 (2-10-10-10) で保存されています。
QImage::Format_Alpha8 (since Qt 5.5)23画像は、8 ビットのアルファ専用形式で保存されています。
QImage::Format_Grayscale8 (since Qt 5.5)24画像は 8 ビットのグレースケール形式で保存されています。
QImage::Format_Grayscale16 (since Qt 5.13)28画像は 16 ビットのグレースケール形式で保存されています。
QImage::Format_RGBX64 (since Qt 5.12)25画像は、64 ビットのハーフワード順 RGB(x) 形式 (16-16-16-16) を使用して保存されます。これは Format_RGBA64 と同じですが、アルファは常に 65535 でなければならない点が異なります。
QImage::Format_RGBA64 (since Qt 5.12)26画像は、64 ビットのハーフワード順 RGBA 形式 (16-16-16-16) で保存されます。
QImage::Format_RGBA64_Premultiplied (since Qt 5.12)27画像は、プリマルチプライされた 64 ビットのハーフワード順の RGBA 形式 (16-16-16-16) を使用して保存されます。
QImage::Format_BGR888 (since Qt 5.14)29画像は、24 ビット BGR 形式で保存されます。
QImage::Format_RGBX16FPx4 (since Qt 6.2)30画像は、4つの16ビットハーフワード浮動小数点RGBx形式(16FP-16FP-16FP-16FP)を使用して保存されます。これは Format_RGBA16FPx4 と同じですが、アルファは常に 1.0 でなければなりません。
QImage::Format_RGBA16FPx4 (since Qt 6.2)31画像は、4 つの 16 ビットハーフワード浮動小数点 RGBA フォーマット (16FP-16FP-16FP-16FP) を使用して保存されます。
QImage::Format_RGBA16FPx4_Premultiplied (since Qt 6.2)32画像は、事前乗算された 4 つの 16 ビットハーフワード浮動小数点 RGBA 形式(16FP-16FP-16FP-16FP)で保存されます。
QImage::Format_RGBX32FPx4 (since Qt 6.2)33画像は、4 つの 32 ビット浮動小数点 RGBx フォーマット (32FP-32FP-32FP-32FP) を使用して保存されます。これは Format_RGBA32FPx4 と同じですが、アルファは常に 1.0 でなければなりません。
QImage::Format_RGBA32FPx4 (since Qt 6.2)34画像は、4つの32ビット浮動小数点RGBA形式(32FP-32FP-32FP-32FP)を使用して保存されます。
QImage::Format_RGBA32FPx4_Premultiplied (since Qt 6.2)35画像は、事前乗算された 4 つの 32 ビット浮動小数点 RGBA 形式 (32FP-32FP-32FP-32FP) を使用して保存されます。
QImage::Format_CMYK8888 (since Qt 6.8)36画像は、32 ビットのバイト順 CMYK 形式で保存されます。

バイト順のフォーマットは、QPixelFormat::typeInterpretation() がQPixelFormat::UnsignedByte であり、プラットフォームのエンディアンに関係なく、個々の色成分が 0xRR、0xGG、0xBB、0xAA といった固定の順序でメモリに格納されます。 これらのフォーマットは、個々のバイトとして読み取るか、より大きなチャンクで読み取る場合はQPixelFormat::BigEndian として解釈する必要があります。

注: QImage::Format_Indexed8 または QImage::Format_CMYK8888 形式のQImage への描画は サポートされていません。

注: QPainter を使用して、これらのフォーマットのほとんどに直接レンダリングすることは避けてください 。レンダリングは、Format_RGB32 およびFormat_ARGB32_Premultiplied フォーマットに対して最適化されており、次いでFormat_RGB16 、Format_RGBX8888 、Format_RGBA8888_Premultiplied 、Format_RGBX64 、Format_RGBA64_Premultiplied フォーマットに対して最適化されています。

format() およびconvertToFormat()も参照してください 。

enum QImage::InvertMode

この列挙型は、invertPixels() 関数においてピクセル値をどのように反転させるかを指定するために使用されます。

定数定数説明
QImage::InvertRgb0RGB 値のみを反転させ、アルファチャンネルは変更しません。
QImage::InvertRgba1アルファチャンネルを含むすべてのチャンネルを反転させます。

関連項目: invertPixels()。

メンバ関数のドキュメント

[noexcept] QImage::QImage()

ヌル画像を作成します。

isNull()も参照してください 。

[explicit] QImage::QImage(const char *const[] xpm)

指定されたxpm 形式の画像から画像を生成します。

画像が有効なXPM画像であることを確認してください。エラーは黙って無視されます。

なお、少し変わった宣言を使用することで、XPM変数をわずかに圧縮することが可能です。

static const char * const start_xpm[] = {
    "16 15 8 1",
    "a c #cec6bd",
    // etc.
};

余分なconst を付けることで、定義全体が読み取り専用となり、これにより(例えばコードが共有ライブラリ内にある場合など)わずかに効率が向上し、アプリケーションとともにROMに格納できるようになります。

QImage::QImage(const QSize &size, QImage::Format format)

指定されたsize およびformat を使用して画像を生成します。

メモリを割り当てることができない場合は、null 画像が返されます。

警告: これにより 、初期化されていないデータを含む QImage が作成されます。QPainter を使用して描画を行う前に、fill() を呼び出して、画像を適切なピクセル値で埋めてください。

[explicit] QImage::QImage(const QString &fileName, const char *format = nullptr)

画像を生成し、指定されたfileName を持つファイルからその画像を読み込もうとします。

ローダーは、指定されたformat を使用して画像の読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ファイルの拡張子とヘッダーに基づいて自動的に検出されます。詳細については、{QImageReader::setAutoDetectImageFormat()}{QImageReader}を参照してください。

画像の読み込みに失敗した場合、このオブジェクトはヌル画像となります。

ファイル名は、ディスク上の実際のファイル、またはアプリケーションに埋め込まれたリソースのいずれかを指すことができます。アプリケーションの実行ファイルに画像やその他のリソースファイルを埋め込む方法の詳細については、「リソースシステムの概要」を参照してください。

isNull() およびReading and Writing Image Filesも参照してください 。

QImage::QImage(int width, int height, QImage::Format format)

指定された `width`、`height `、および `format` を使用してイメージを構築します。

メモリを割り当てることができない場合は、null の画像が返されます。

警告: これにより 、初期化されていないデータを持つ QImage が作成されます。QPainter を使用して描画を行う前に、fill() を呼び出して、画像を適切なピクセル値で埋めてください。

QImage::QImage(const uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

指定されたwidth 、height 、およびformat を使用して、既存の読み取り専用メモリバッファdata を利用する画像を構築します。width およびheight はピクセル単位で指定する必要があり、data は32ビットアラインメントでなければならず、画像内の各スキャンラインのデータも32ビットアラインメントでなければなりません。

バッファは、QImageの存続期間中、および変更されていない、あるいは元のバッファから切り離されていないすべてのコピーが存在する限り、有効な状態を維持しなければなりません。画像オブジェクトは、破棄時にバッファを削除しません。最後のコピーが破棄される際に呼び出される関数ポインタ `cleanupFunction ` と、追加のポインタ `cleanupInfo ` を指定することができます。

format がインデックス付きカラー形式の場合、画像のカラーテーブルは初期状態では空であり、画像を使用する前にsetColorCount() またはsetColorTable() を使用して十分に拡張する必要があります。

非constのデータバッファを受け取る類似のQImageコンストラクタとは異なり、このバージョンはバッファの内容を一切変更しません。例えば、QImage::bits()を呼び出すと、コンストラクタに渡されたバッファそのものではなく、画像のディープコピーが返されます。これにより、生データが変更される可能性を排除しつつ、生データからQImageを効率的に構築することが可能になります。

QImage::QImage(uchar *data, int width, int height, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

指定されたwidth 、height 、およびformat を使用して、既存のメモリバッファdata を利用する画像を構築します。width およびheight はピクセル単位で指定する必要があります。また、data は32ビットアラインメントを満たしている必要があり、画像内の各スキャンラインのデータも32ビットアラインメントを満たしている必要があります。

バッファは、QImageの存続期間中、および変更されていない、あるいは元のバッファから切り離されていないすべてのコピーが存在する限り、有効な状態を維持しなければなりません。画像オブジェクトは、破棄時にバッファを削除しません。関数ポインタcleanupFunction と、最後のコピーが破棄された際に呼び出される追加のポインタcleanupInfo を指定することができます。

format がインデックスカラー形式の場合、画像のカラーテーブルは初期状態では空であり、画像を使用する前にsetColorCount()またはsetColorTable()を使用して十分に拡張する必要があります。

QImage::QImage(const uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

指定されたwidth 、height 、およびformat を用いて、既存のメモリバッファdata を使用する画像を構築します。width およびheight はピクセル単位で指定する必要があります。bytesPerLine は1行あたりのバイト数(ストライド)を指定します。

このバッファは、QImageの存続期間中、および変更されていない、あるいは元のバッファから切り離されていないすべてのコピーが存在する限り、有効な状態を維持する必要があります。画像オブジェクトは、破棄時にバッファを削除しません。最後のコピーが破棄される際に呼び出される関数ポインタcleanupFunction と、追加のポインタcleanupInfo を指定することができます。

format がインデックスカラー形式の場合、イメージのカラーテーブルは初期状態では空であり、イメージを使用する前にsetColorCount() またはsetColorTable() を使用して十分に拡張する必要があります。

非constのデータバッファを受け取る類似のQImageコンストラクタとは異なり、このバージョンはバッファの内容を決して変更しません。たとえば、QImage::bits() を呼び出すと、コンストラクタに渡されたバッファそのものではなく、画像のディープコピーが返されます。これにより、生データが変更される可能性を排除しつつ、生データからQImageを効率的に構築することが可能になります。

QImage::QImage(uchar *data, int width, int height, qsizetype bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

指定されたwidth 、height 、およびformat を用いて、既存のメモリバッファdata を使用する画像を構築します。width およびheight はピクセル単位で指定する必要があります。bytesPerLine は1行あたりのバイト数(ストライド)を指定します。

このバッファは、QImageの存続期間中、および変更されていない、あるいは元のバッファから切り離されていないすべてのコピーが存在する限り、有効な状態を維持する必要があります。画像オブジェクトは、破棄時にバッファを削除しません。最後のコピーが破棄される際に呼び出される関数ポインタcleanupFunction と、追加のポインタcleanupInfo を指定することができます。

format がインデックスカラー形式の場合、画像のカラーテーブルは初期状態では空であり、画像を使用する前にsetColorCount()またはsetColorTable()を使用して十分に拡張する必要があります。

QImage::QImage(const QImage &image)

指定されたimage の浅いコピーを作成します。

浅いコピーに関する詳細については、「暗黙的なデータ共有」のドキュメントを参照してください。

copy()も参照してください 。

[noexcept] QImage::QImage(QImage &&other)

QImageインスタンスをムーブコンストラクタで生成し、other が参照していたのと同じオブジェクトを参照するようにします。

[virtual noexcept] QImage::~QImage()

画像を削除し、後片付けを行います。

bool QImage::allGray() const

画像内のすべての色がグレーの濃淡である場合(つまり、赤、緑、青の各成分が等しい場合)、true を返します。それ以外の場合は false を返します。

なお、この関数はカラーテーブルのない画像では処理に時間がかかることに注意してください。

isGrayscale()も参照してください 。

void QImage::applyColorTransform(const QColorTransform &transform)

画像内のすべてのピクセルに対して、色変換transform を適用します。

[since 6.8] void QImage::applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor)

画像内のすべてのピクセルに色変換「transform 」を適用し、画像のフォーマットを「toFormat 」に変換します。

指定された画像変換flags は、フォーマット変換プロセス中に画像データがどのように処理されるかを制御します。

この関数は Qt 6.8 で導入されました。

int QImage::bitPlaneCount() const

画像に含まれるビットプレーンの数を返します。

ビットプレーンの数は、各ピクセルに対する色および透明度情報のビット数です。これは、画像形式に未使用のビットが含まれている場合、深度とは異なります(つまり、深度よりも小さくなります)。

depth()、format()、およびImage Formatsも参照してください 。

uchar *QImage::bits()

最初のピクセルデータへのポインタを返します。これは、scanLine(0) と同等です。

なお、QImage は暗黙的なデータ共有を使用することに注意してください。この関数は、共有されているピクセルデータのディープコピーを実行するため、この `QImage ` だけが現在の戻り値を使用することを保証します。

scanLine()、sizeInBytes()、およびconstBits()も参照してください 。

const uchar *QImage::bits() const

QImage は暗黙的なデータ共有を使用しますが、この関数は、返されるデータが const であるため、共有されるピクセルデータのディープコピーは行わないことに注意してください。

これはオーバーロードされた関数です。

qsizetype QImage::bytesPerLine() const

画像の1スキャンラインあたりのバイト数を返します。

height() が 0 以外の場合、これはsizeInBytes() /height() と同等です。

scanLine()も参照してください 。

qint64 QImage::cacheKey() const

このQImage オブジェクトの内容を識別する番号を返します。異なるQImage オブジェクトが同じキーを持つのは、それらが同じ内容を指している場合に限られます。

画像が変更されると、キーも変更されます。

QRgb QImage::color(int i) const

インデックスi にあるカラーテーブルの色を返します。最初の色はインデックス 0 にあります。

画像のカラーテーブル内の色は、ARGBの4要素組(QRgb )として指定されます。色の各成分を取得するには、qAlpha()、qRed()、qGreen()、およびqBlue() 関数を使用します。

setColor()、pixelIndex()、およびPixel Manipulationも参照してください 。

int QImage::colorCount() const

画像のカラーテーブルのサイズを返します。

32-bpp 画像の場合、colorCount() は 0 を返します。これは、これらの画像がカラーテーブルを使用せず、代わりにピクセル値を ARGB 4 要素としてエンコードしているためです。

setColorCount() およびImage Informationも参照してください 。

QColorSpace QImage::colorSpace() const

色空間が定義されている場合、その画像の色空間を返します。

setColorSpace()も参照してください 。

QList<QRgb> QImage::colorTable() const

画像のカラーテーブルに含まれる色のリストを返します。画像にカラーテーブルがない場合は、空のリストを返します

関連項目: setColorTable()、colorCount()、およびcolor()。

[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) const &

画像内のすべてのピクセルに対してtransform を適用して変換された画像の色を返します。

注: transform のソース色空間がこの画像のフォーマットと互換性がない場合 、nullのQImage を返します。transform のターゲット色空間がこの画像のフォーマットと互換性がない場合、画像は互換性のあるフォーマットに変換されます。ターゲットピクセルフォーマットの選択についてより詳細な制御を行うには、このメソッドの3引数オーバーロードを参照してください。

この関数は Qt 6.4 で導入されました。

applyColorTransform()も参照してください 。

[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

画像内のすべてのピクセルに対してtransform を使用して変換した画像の色を返し、toFormat 形式の画像を返します。

指定された画像変換flags は、形式変換プロセス中に画像データがどのように処理されるかを制御します。

注: transform のソース色空間がこの画像のフォーマットと互換性がない場合 、またはターゲット色空間がtoFormat と互換性がない場合は 、null のQImage を返します。

この関数は Qt 6.8 で導入されました。

関連項目: applyColorTransform()。

[since 6.4] QImage QImage::colorTransformed(const QColorTransform &transform) &&

画像内のすべてのピクセルに対してtransform を適用して変換した画像の色を返します。

これはオーバーロードされた関数です。

この関数は Qt 6.4 で導入されました。

applyColorTransform()も参照してください 。

[since 6.8] QImage QImage::colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

画像内のすべてのピクセルに対してtransform を使用して変換された画像の色を返します。

これはオーバーロードされた関数です。

この関数は Qt 6.8 で導入されました。

applyColorTransform()も参照してください 。

const uchar *QImage::constBits() const

最初のピクセルデータへのポインタを返します。

QImage は暗黙的なデータ共有を使用しますが、この関数は、返されるデータが const であるため、共有されたピクセルデータのディープコピーは行わないことに注意してください。

bits() およびconstScanLine()も参照してください 。

const uchar *QImage::constScanLine(int i) const

インデックスi の走査線にあるピクセルデータへのポインタを返します。最初の走査線はインデックス0です。

スキャンラインデータは、少なくとも32ビット単位でアラインされます。64ビット形式の場合、64ビット整数のネイティブアラインメントに従います(ほとんどのプラットフォームでは64ビットですが、i386では32ビットである点に注意してください)。

QImage は暗黙的なデータ共有を使用しますが、返されるデータは const であるため、この関数は共有されたピクセルデータのディープコピーを行わないことに注意してください。

scanLine() およびconstBits()も参照してください 。

void QImage::convertTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)

指定されたformat に画像をその場で変換し、必要に応じて画像を切り離します。

指定された画像変換flags は、変換プロセス中に画像データがどのように処理されるかを制御します。

convertedTo()も参照してください 。

void QImage::convertToColorSpace(const QColorSpace &colorSpace)

画像をcolorSpace に変換します。

画像に有効な色空間がない場合、このメソッドは何も行いません。

注: colorSpace が現在のフォーマットと互換性がない場合 、画像は互換性のあるフォーマットに変換されます。

convertedToColorSpace() およびsetColorSpace()も参照してください 。

[since 6.8] void QImage::convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor)

画像をcolorSpace およびformat に変換します。

画像に有効な色空間がない場合、または色空間がフォーマットと互換性がない場合、このメソッドは何も行いません。

指定された画像変換flags は、フォーマット変換プロセス中に画像データがどのように処理されるかを制御します。

この関数は Qt 6.8 で導入されました。

convertedToColorSpace() およびsetColorSpace()も参照してください 。

QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

指定されたformat 内の画像のコピーを返します。

指定された画像変換flags は、変換プロセス中に画像データがどのように処理されるかを制御します。

convertTo() およびImage Formatsも参照してください 。

QImage QImage::convertToFormat(QImage::Format format, const QList<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const

指定されたcolorTable を用いて、指定されたformat に変換された画像のコピーを返します。

RGB形式からインデックス付き形式への変換は処理に時間がかかり、ディザリングを行わず、単純な最接近色法が使用されます。

これはオーバーロードされた関数です。

[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

[since 6.0] QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

指定されたformat 内の画像のコピーを返します。

指定された画像変換flags は、変換プロセス中に画像データがどのように処理されるかを制御します。

これらの関数は Qt 6.0 で導入されました。

convertTo() およびImage Formatsも参照してください 。

QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace) const

colorSpace に変換された画像を返します。

画像に有効な色空間がない場合、nullのQImage が返されます。

注: `colorSpace ` が現在のフォーマットと互換性がない場合 、返される画像も互換性のあるフォーマットに変換されます。返される画像のフォーマットをより細かく制御するには、このメソッドの 3 引数オーバーロードを参照してください。

関連項目: convertToColorSpace() およびcolorTransformed()。

[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&

[since 6.8] QImage QImage::convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

colorSpace およびformat に変換された画像を返します。

画像に有効な色空間がない場合、QImage として null が返されます。

指定された画像変換のflags は、フォーマット変換プロセス中に画像データがどのように扱われるかを制御します。

これらの関数は Qt 6.8 で導入されました。

colorTransformed()も参照してください 。

QImage QImage::copy(const QRect &rectangle = QRect()) const

画像の一部を新しい画像として返します。

返される画像は、この画像内の位置 (rectangle.x(),rectangle.y()) からコピーされたものであり、常に指定されたrectangle のサイズになります。

この画像の範囲外の領域では、ピクセルは 0 に設定されます。32 ビット RGB 画像の場合、これは黒を意味します。32 ビット ARGB 画像の場合、これは透明な黒を意味します。8 ビット画像の場合、これはカラーテーブルのインデックス 0 の色を意味し、これは任意の色になります。1 ビット画像の場合、これはQt::color0 を意味します。

指定された `rectangle ` が空の矩形の場合、画像全体がコピーされます。

QImage()も参照してください 。

QImage QImage::copy(int x, int y, int width, int height) const

返される画像は、この画像内の座標 (x,y) からコピーされたものであり、常に指定されたwidth およびheight を持ちます。この画像の範囲外の領域では、ピクセルは 0 に設定されます。

これはオーバーロードされた関数です。

QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const

この画像のアルファバッファから 1 bpp のマスクを構築して返します。画像の形式が `QImage::Format_RGB32` の場合は、null 画像を返します。

flags 引数は、Qt::ImageConversionFlags のビット単位のOR演算の結果であり、変換プロセスを制御します。flagsに0を指定すると、すべてのデフォルトオプションが設定されます。

返される画像のビット順はリトルエンディアン(つまり、画像のフォーマットはQImage::Format_MonoLSB )ですが、convertToFormat()関数を使用してビッグエンディアン(QImage::Format_Mono )に変換することができます。

createHeuristicMask() およびImage Transformationsも参照してください 。

QImage QImage::createHeuristicMask(bool clipTight = true) const

この画像に対して、1 bppのヒューリスティックマスクを作成して返します。

この関数は、四隅のいずれかから色を選択し、すべてのエッジからその色のピクセルを削り取ることで動作します。四隅が、どの色をマスクして除去するかを決定します。同数票となった場合(これは一般的に、この関数がその画像には適用できないことを意味します)、結果は任意となります。

返される画像のビット順はリトルエンディアン(つまり、画像のフォーマットはQImage::Format_MonoLSB )ですが、convertToFormat() 関数を使用してビッグエンディアン(QImage::Format_Mono )に変換することができます。

clipTight が true (デフォルト) の場合、マスクはピクセルを覆うのにちょうど十分な大きさになります。そうでない場合、マスクはデータピクセルよりも大きくなります。

この関数はアルファバッファを無視することに注意してください。

createAlphaMask() およびImage Transformationsも参照してください 。

QImage QImage::createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const

指定されたcolor の値に基づいて、この画像用のマスクを作成して返します。mode がMaskInColor(デフォルト値)の場合、color に一致するすべてのピクセルは、マスク内で不透明なピクセルとなります。mode がMaskOutColorの場合、指定された色に一致するすべてのピクセルは透明になります。

createAlphaMask() およびcreateHeuristicMask()も参照してください 。

int QImage::depth() const

画像の深度を返します。

画像の深度とは、1ピクセルを格納するために使用されるビット数であり、ビット・パー・ピクセル(bpp)とも呼ばれます。

サポートされている色深度は、1、8、16、24、32、64です。

bitPlaneCount()、convertToFormat()、Image Formats 、およびImage Informationも参照してください 。

[since 6.2] QSizeF QImage::deviceIndependentSize() const

画像のサイズを、デバイス非依存ピクセル単位で返します。

この値は、ユーザーインターフェースのサイズ計算で画像のサイズを使用する際に利用すべきです。

戻り値は、image.size() / image.devicePixelRatio() と同等です。

この関数は Qt 6.2 で導入されました。

qreal QImage::devicePixelRatio() const

画像のデバイスピクセル比を返します。これは、デバイスピクセルとデバイス非依存ピクセルの比率です。

画像サイズに基づいてレイアウトのジオメトリを計算する際に、この関数を使用します:QSize layoutSize = image.size() / image.devicePixelRatio()

デフォルト値は 1.0 です。

setDevicePixelRatio() およびQImageReaderも参照してください 。

int QImage::dotsPerMeterX() const

1物理メートルに水平方向に収まるピクセル数を返します。この数値は、dotsPerMeterY() と合わせて、画像の意図されたスケールとアスペクト比を定義します。

setDotsPerMeterX() およびImage Informationも参照してください 。

int QImage::dotsPerMeterY() const

1物理メートルに縦方向に収まるピクセル数を返します。この数値は、dotsPerMeterX() と併せて、画像の意図されたスケールとアスペクト比を定義します。

setDotsPerMeterY() およびImage Informationも参照してください 。

void QImage::fill(uint pixelValue)

指定されたpixelValue で画像全体を塗りつぶします。

この画像の深度が1の場合、最下位ビットのみが使用されます。fill(0)やfill(2)などを指定すると、画像は0で埋められます。 fill(1)、fill(3) などを指定すると、画像は 1 で埋められます。深度が 8 の場合、最下位 8 ビットが使用され、深度が 16 の場合、最下位 16 ビットが使用されます。

画像のビット深度が 32 ビットを超える場合、結果は未定義となります。

注: 対応する値を取得する関数は存在しませんが 、QImage::pixelIndex()は インデックス形式の場合、QImage::pixel() は RGB32、ARGB32、および ARGB32PM 形式の場合、それぞれ同じ値を返します。

depth() およびImage Transformationsも参照してください 。

void QImage::fill(Qt::GlobalColor color)

指定されたcolor (標準のグローバルカラーとして定義される)で画像を塗りつぶします。

これはオーバーロードされた関数です。

void QImage::fill(const QColor &color)

指定されたcolor で画像全体を塗りつぶします。

画像の深度が 1 の場合、color がQt::color1 に等しければ、画像は 1 で塗りつぶされます。それ以外の場合は、0 で塗りつぶされます。

画像の深度が 8 の場合、color がカラートテーブルに存在すれば、それに応じるインデックスで画像が塗りつぶされ、存在しない場合は 0 で塗りつぶされます。

これはオーバーロードされた関数です。

[since 6.9] void QImage::flip(Qt::Orientations orient = Qt::Vertical)

orient の設定に応じて、画像を水平方向および/または垂直方向に反転または鏡像化します。

この関数は Qt 6.9 で導入されました。

flipped(Qt::Orientations) およびImage Transformationsも参照してください 。

[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) &&

[since 6.9] QImage QImage::flipped(Qt::Orientations orient = Qt::Vertical) const &

orient の設定に応じて、画像を水平方向および/または垂直方向に反転させた画像を返します。

元の画像は変更されないことに注意してください。

これらの関数は Qt 6.9 で導入されました。

flip(Qt::Orientations) およびImage Transformationsも参照してください 。

QImage::Format QImage::format() const

画像の形式を返します。

Image Formatsも参照してください 。

[static, since 6.2] QImage QImage::fromData(QByteArrayView data, const char *format = nullptr)

指定されたQByteArrayView data からイメージを構築します。ローダーは、指定されたformat を使用してイメージの読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ローダーはデータ内のヘッダーを検索してファイル形式を推測します。

format が指定された場合、その値はQImageReader::supportedImageFormats()によって返される値のいずれかでなければなりません。

画像の読み込みに失敗した場合、返される画像はヌル画像になります。

この関数は Qt 6.2 で導入されました。

load()、save()、およびReading and Writing Image Filesも参照してください 。

[static] QImage QImage::fromData(const QByteArray &data, const char *format = nullptr)

指定された `QByteArray ` および `data` から `QImage ` を生成します。

これはオーバーロードされた関数です。

[static] QImage QImage::fromData(const uchar *data, int size, const char *format = nullptr)

指定されたバイナリデータdata の先頭size バイトから、QImage を生成します。

これはオーバーロードされた関数です。

[static, since 6.0] QImage QImage::fromHBITMAP(HBITMAP hbitmap)

指定されたhbitmap と同等のQImage を返します。

HBITMAPはアルファチャンネルに関する情報を保存しません。

標準的な場合、アルファチャンネルは無視され、完全に不透明な画像が作成されます(通常はQImage::Format_RGB32 形式)。

ただし、アプリケーションアイコンやシステムトレイのアイコンなど、アルファチャンネルが使用される場合もあります。その場合は、フォーマットが正しいことを確認するために、返された画像に対して `reinterpretAsFormat(QImage::Format_ARGB32) ` を呼び出す必要があります。

この関数は Qt 6.0 で導入されました。

toHBITMAP() およびreinterpretAsFormat()も参照してください 。

[static, since 6.0] QImage QImage::fromHICON(HICON icon)

指定された `icon` と同等の `QImage ` を返します。

この関数は Qt 6.0 で導入されました。

toHICON()も参照してください 。

bool QImage::hasAlphaChannel() const

画像のフォーマットがアルファチャンネルに対応している場合は `true ` を返し、そうでない場合は `false` を返します。

Image Informationも参照してください 。

int QImage::height() const

画像の高さを返します。

Image Informationも参照してください 。

void QImage::invertPixels(QImage::InvertMode mode = InvertRgb)

画像内のすべてのピクセル値を反転させます。

指定された反転値 `mode ` は、画像の深度が 32 の場合にのみ意味を持ちます。デフォルトの `mode ` は `InvertRgb` であり、これによりアルファチャンネルは変更されません。`mode ` が `InvertRgba` の場合、アルファビットも反転されます。

8ビット画像の反転とは、カラーインデックスiを持つすべてのピクセルを、カラーインデックス 255 マイナスi を持つピクセルに置き換えることを意味します。1ビット画像についても同様です。なお、カラーテーブルは変更されないことに注意してください。

画像にプリマルチプライド・アルファチャンネルが含まれている場合、画像はまず反転処理を行うためにプリマルチプライドでない画像形式に変換され、その後元の形式に戻されます。

Image Transformationsも参照してください 。

bool QImage::isGrayscale() const

32ビット画像の場合、この関数は `allGray()` と同等です。

カラーインデックス画像の場合、この関数は、カラーテーブルのすべてのインデックスについて color(i) がQRgb(i, i, i) である場合にtrue を返し、そうでない場合はfalse を返します。

allGray() およびImage Formatsも参照してください 。

bool QImage::isNull() const

nullイメージの場合はtrue を返し、それ以外の場合はfalse を返します。

null 画像とは、すべてのパラメータが 0 に設定されており、データが割り当てられていない画像のことです。

bool QImage::load(const QString &fileName, const char *format = nullptr)

指定されたfileName を持つファイルから画像を読み込みます。画像の読み込みに成功した場合はtrue を返し、失敗した場合は画像を無効化し、false を返します。

ローダーは、指定されたformat (例:PNG や JPG)を使用して画像の読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ファイルの拡張子とヘッダーに基づいて自動的に検出されます。詳細については、QImageReader::setAutoDetectImageFormat() を参照してください。

ファイル名は、ディスク上の実際のファイル、またはアプリケーションに埋め込まれたリソースのいずれかを指すことができます。アプリケーションの実行ファイルに画像やその他のリソースファイルを埋め込む方法の詳細については、「リソースシステムの概要」を参照してください。

Reading and Writing Image Filesも参照してください 。

bool QImage::load(QIODevice *device, const char *format)

この関数は、指定された `device` から `QImage ` を読み込みます。これは、例えば、画像を `QByteArray` に直接読み込むために使用できます。

これはオーバーロードされた関数です。

[since 6.2] bool QImage::loadFromData(QByteArrayView data, const char *format = nullptr)

指定されたQByteArrayView data から画像を読み込みます。画像の読み込みに成功した場合はtrue を返し、失敗した場合は画像を無効化し、false を返します。

ローダーは、指定されたformat (例:PNGやJPG)を使用して画像の読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ローダーはファイル内のヘッダーを調査してファイル形式を推測します。

この関数は Qt 6.2 で導入されました。

「Reading and Writing Image Files」も参照してください 。

bool QImage::loadFromData(const QByteArray &data, const char *format = nullptr)

指定されたQByteArray data から画像を読み込みます。

これはオーバーロードされた関数です。

bool QImage::loadFromData(const uchar *data, int len, const char *format = nullptr)

指定されたバイナリデータdata の先頭len バイトから画像を読み込みます。

これはオーバーロードされた関数です。

[since 6.0, until 6.13] void QImage::mirror(bool horizontal = false, bool vertical = true)

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりに flip(Qt::Orientations) を使用してください。

horizontal およびvertical が true または false に設定されているかどうかに応じて、画像を水平方向および/または垂直方向に反転させます。

この関数は Qt 6.0 で導入されました。

mirrored() およびImage Transformationsも参照してください 。

[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) &&

[until 6.13] QImage QImage::mirrored(bool horizontal = false, bool vertical = true) const &

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりに `flipped(Qt::Orientations)` を使用してください。

horizontal およびvertical が true または false に設定されているかどうかに応じて、画像を水平方向および/または垂直方向に反転させた画像を返します。

元の画像は変更されないことに注意してください。

mirror() およびImage Transformationsも参照してください 。

QPoint QImage::offset() const

他の画像に対して相対的に配置する際に、その画像をオフセットするピクセル数を返します。

setOffset() およびImage Informationも参照してください 。

QRgb QImage::pixel(const QPoint &position) const

指定されたposition の位置にあるピクセルの色を返します。

position が有効でない場合、結果は未定義となります。

警告: この関数は 、大規模なピクセル操作に使用すると計算負荷が高くなります。多数のピクセルを読み込む必要がある場合は、constBits() またはconstScanLine() を使用してください。

関連項目: setPixel()、valid()、constBits()、constScanLine()、およびPixel Manipulation 。

QRgb QImage::pixel(int x, int y) const

座標 (x,y) にあるピクセルの色を返します。

これはオーバーロードされた関数です。

QColor QImage::pixelColor(const QPoint &position) const

指定されたposition の位置にあるピクセルの色を、QColor として返します。

position が有効でない場合、無効なQColor が返されます。

警告: この関数は 、大量のピクセルを操作する場合に処理負荷が高くなります。多くのピクセルを読み込む必要がある場合は、constBits() またはconstScanLine() を使用してください。

関連項目: setPixelColor(),setPixel(),valid(),constBits(),constScanLine(), およびPixel Manipulation 。

QColor QImage::pixelColor(int x, int y) const

座標 (x,y) にあるピクセルの色を、QColor として返します。

これはオーバーロードされた関数です。

[noexcept] QPixelFormat QImage::pixelFormat() const

QImage::Format をQPixelFormat

int QImage::pixelIndex(const QPoint &position) const

指定されたposition のピクセルインデックスを返します。

position が無効である場合、または画像がパレット画像でない場合(depth() > 8)、結果は未定義となります。

valid()、depth()、およびPixel Manipulationも参照してください 。

int QImage::pixelIndex(int x, int y) const

(x,y) におけるピクセルインデックスを返します。

これはオーバーロードされた関数です。

QRect QImage::rect() const

画像の囲み矩形(0, 0,width(),height()) を返します。

Image Informationも参照してください 。

bool QImage::reinterpretAsFormat(QImage::Format format)

データの変更を行わずに、画像のフォーマットをformat に変更します。同じ深度のフォーマット間でのみ機能します。

成功した場合は `true ` を返します。

この関数は、データが不透明のみであることが分かっている場合に、アルファチャンネルを持つ画像を対応する不透明形式に変更したり、新しいデータで上書きする前に指定された画像バッファの形式を変更したりするために使用できます。

警告: この関数は 、画像データが新しいフォーマットで有効かどうかを検証せず、深度が互換性がある場合にはtrue を返します。無効なデータを含む画像に対する操作は未定義です。

警告: 画像がデタッチされていない場合 、この関数の呼び出しによりデータがコピーされます。

関連項目: hasAlphaChannel() およびconvertToFormat()。

[since 6.0] void QImage::rgbSwap()

すべてのピクセルの赤(red)成分と青(blue)成分の値を入れ替え、RGB画像を事実上BGR画像に変換します。

この関数は Qt 6.0 で導入されました。

rgbSwapped() およびImage Transformationsも参照してください 。

QImage QImage::rgbSwapped() &&

QImage QImage::rgbSwapped() const &

すべてのピクセルの赤(red)および青(blue)成分の値が入れ替わったQImage を返します。これにより、RGB画像が実質的にBGR画像に変換されます。

元のQImage は変更されません。

rgbSwap() およびImage Transformationsも参照してください 。

bool QImage::save(const QString &fileName, const char *format = nullptr, int quality = -1) const

指定されたfileName を持つファイルに、指定された画像ファイルformat およびquality の係数を使用して画像を保存します。format がnullptr の場合、QImage はfileName の拡張子を確認して形式を推測しようとします。

quality ファクターは、0 から 100 または -1 の範囲で指定する必要があります。圧縮された小さなファイルを得るには 0 を、圧縮されていない大きなファイルを得るには 100 を、デフォルト設定を使用するには -1(デフォルト)を指定します。

画像の保存に成功した場合は `true ` を返し、失敗した場合は `false` を返します。

Reading and Writing Image Filesも参照してください 。

bool QImage::save(QIODevice *device, const char *format = nullptr, int quality = -1) const

この関数は、指定された `device` に `QImage ` を書き込みます。

たとえば、これを使って画像をQByteArray に直接保存することができます:

QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format

これはオーバーロードされた関数です。

QImage QImage::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

指定されたsize で定義された長方形に、指定されたaspectRatioMode およびtransformMode に従って拡大縮小された画像のコピーを返します。

「アスペクト比モード」を使用した画像の拡大・縮小の3つの方法を示した図

  • aspectRatioMode がQt::IgnoreAspectRatio の場合、画像はsize にスケーリングされます。
  • aspectRatioMode がQt::KeepAspectRatio の場合、画像はアスペクト比を維持したまま、size の範囲内で可能な限り大きな長方形にスケーリングされます。
  • aspectRatioMode がQt::KeepAspectRatioByExpanding の場合、アスペクト比を維持したまま、size の外側に収まる最小の矩形に画像がスケーリングされます。

指定されたsize が空の場合、この関数はnull画像を返します。

isNull() およびImage Transformationsも参照してください 。

QImage QImage::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

指定されたwidth およびheight を持つ長方形に、指定されたaspectRatioMode およびtransformMode に従ってスケーリングされた画像のコピーを返します。

width またはheight のいずれかが 0 または負の数の場合、この関数は null 画像を返します。

これはオーバーロードされた関数です。

QImage QImage::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const

画像の拡大・縮小されたコピーを返します。返される画像は、指定された変換mode を用いて、指定されたheight に拡大・縮小されます。

この関数は、画像のアスペクト比が維持されるように、画像の幅を自動的に計算します。

指定されたheight が0または負の値の場合、空の画像が返されます。

Image Transformationsも参照してください 。

QImage QImage::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const

画像の拡大・縮小されたコピーを返します。返される画像は、指定された変換mode を用いて、指定されたwidth に拡大・縮小されます。

この関数は、アスペクト比が維持されるように、画像の高さを自動的に計算します。

指定されたwidth が0または負の値の場合、空の画像が返されます。

Image Transformationsも参照してください 。

uchar *QImage::scanLine(int i)

インデックスi の走査線にあるピクセルデータへのポインタを返します。最初の走査線はインデックス0です。

スキャンラインデータは、少なくとも32ビット単位でアラインメントされています。64ビット形式の場合、64ビット整数のネイティブアラインメントに従います(ほとんどのプラットフォームでは64ビットですが、i386では32ビットであることに注意してください)。

たとえば、画像内の各ピクセルの緑成分を除去するには:

for (int y = 0; y < image.height(); ++y) {
    QRgb *line = reinterpret_cast<QRgb*>(image.scanLine(y));
    for (int x = 0; x < image.width(); ++x) {
        QRgb &rgb = line[x];
        rgb = qRgba(qRed(rgb), qGreen(0), qBlue(rgb), qAlpha(rgb));
    }
}

警告: 32-bppの画像データにアクセスする場合は 、返されたポインタをQRgb* にキャストし(QRgb のサイズは32ビットです)、それを使用してピクセル値の読み書きを行ってください。uchar* ポインタを直接使用することはできません。これは、ピクセル形式が基盤となるプラットフォームのバイト順に依存するためです。ピクセルにアクセスするには、qRed()、qGreen()、qBlue()、およびqAlpha()を使用してください。

bytesPerLine()、bits()、Pixel Manipulation 、およびconstScanLine()も参照してください 。

const uchar *QImage::scanLine(int i) const

これはオーバーロードされた関数です。

void QImage::setAlphaChannel(const QImage &alphaChannel)

この画像のアルファチャンネルを、指定されたalphaChannel に設定します。

alphaChannel が8ビットのアルファ画像である場合、アルファ値が直接使用されます。それ以外の場合は、alphaChannel が8ビットのグレースケールに変換され、ピクセル値の輝度が使用されます。

画像にすでにアルファチャンネルがある場合は、既存のアルファチャンネルに新しいアルファチャンネルが乗算されます。画像にアルファチャンネルがない場合は、アルファチャンネルを持つ形式に変換されます。

この操作は、`QPainter::CompositionMode_DestinationIn` を使用して、この画像の上に `alphaChannel ` をアルファ画像として塗りつぶすのと同様です。

hasAlphaChannel()、Image Transformations 、およびImage Formatsも参照してください 。

void QImage::setColor(int index, QRgb colorValue)

カラーテーブル内の指定されたindex のカラーを、指定されたcolorValue に設定します。カラー値はARGBの4元組です。

index がカラーテーブルの現在のサイズ範囲外にある場合、setColorCount() によってカラーテーブルが拡張されます。

color()、colorCount()、setColorTable()、およびPixel Manipulationも参照してください 。

void QImage::setColorCount(int colorCount)

カラーテーブルを、colorCount 個のエントリを含むようにサイズ変更します。

カラーテーブルが拡張された場合、追加されたすべての色は透明(つまりqRgba(0, 0, 0, 0))に設定されます。

画像を使用する際、カラーテーブルは、画像内に存在するすべてのピクセル/インデックス値に対応するエントリを収容できる十分な大きさでなければなりません。そうでない場合、結果は未定義となります。

colorCount()、colorTable()、setColor()、およびImage Transformationsも参照してください 。

void QImage::setColorSpace(const QColorSpace &colorSpace)

画像データに変換を一切行わずに、画像の色空間をcolorSpace に設定します。

colorSpace()も参照してください 。

void QImage::setColorTable(const QList<QRgb> &colors)

色インデックスをQRgb の値に変換するために使用されるカラーテーブルを、指定されたcolors に設定します。

画像を使用する場合、カラーテーブルは、画像内に存在するすべてのピクセル/インデックス値に対応するエントリを格納できる十分な大きさでなければなりません。そうでない場合、結果は未定義となります。

colorTable()、setColor()、およびImage Transformationsも参照してください 。

void QImage::setDevicePixelRatio(qreal scaleFactor)

画像のデバイスピクセル比を設定します。これは、画像ピクセルとデバイス非依存ピクセルの比率です。

scaleFactor のデフォルト値は1.0です。これ以外の値に設定すると、2つの影響があります。

画像上で開かれたQPainterはスケーリングされます。たとえば、比率が2.0の場合、200x200の画像上で描画を行うと、実質的な(デバイス非依存の)描画境界は100x100になります。

Qt内で画像サイズに基づいてレイアウトのジオメトリを計算するコードパスでは、この比率が考慮されます:QSize layoutSize = image.size() / image.devicePixelRatio()。これにより、画像は大きな画像としてではなく、高DPI画像として表示されることになります(Drawing High Resolution Versions of Pixmaps and Images を参照)。

devicePixelRatio() およびdeviceIndependentSize()も参照してください 。

void QImage::setDotsPerMeterX(int x)

物理的な1メートルに水平方向に収まるピクセル数を、x に設定します。

この数値は、dotsPerMeterY() と合わせて、画像の意図されたスケールとアスペクト比を定義し、QPainter が画像上にグラフィックを描画する際のスケールを決定します。他のペイントデバイス上で画像がレンダリングされる際のスケールやアスペクト比は変更されません。

dotsPerMeterX() およびImage Informationも参照してください 。

void QImage::setDotsPerMeterY(int y)

物理的な1メートルに縦方向に収まるピクセル数を、y に設定します。

この数値は、dotsPerMeterX() と合わせて、画像の意図されたスケールとアスペクト比を定義し、QPainter が画像上にグラフィックを描画する際のスケールを決定します。他のペイントデバイス上で画像がレンダリングされる際のスケールやアスペクト比は変更されません。

dotsPerMeterY() およびImage Informationも参照してください 。

void QImage::setOffset(const QPoint &offset)

他の画像に対する位置決めを行う際、画像をオフセットするピクセル数を `offset` に設定します。

offset() およびImage Informationも参照してください 。

void QImage::setPixel(const QPoint &position, uint index_or_rgb)

指定されたposition のピクセルインデックスまたは色をindex_or_rgb に設定します。

画像の形式がモノクロまたはパレット画像の場合、指定された `index_or_rgb ` の値は画像のカラーテーブル内のインデックスでなければなりません。それ以外の場合は、パラメータは `QRgb ` の値でなければなりません。

position が画像内の有効な座標ペアでない場合、またはモノクロおよびパレット画像の場合にindex_or_rgb >=colorCount() である場合、結果は未定義となります。

警告:この関数は 、内部で呼び出されるdetach() 関数の呼び出しにより、処理コストが高くなります。パフォーマンスが懸念される場合は、scanLine() またはbits() を使用してピクセルデータに直接アクセスすることをお勧めします。

pixel() およびPixel Manipulationも参照してください 。

void QImage::setPixel(int x, int y, uint index_or_rgb)

(x,y) の位置にあるピクセルのインデックスまたは色を、index_or_rgb に設定します。

これはオーバーロードされた関数です。

void QImage::setPixelColor(const QPoint &position, const QColor &color)

指定された座標position の位置の色をcolor に設定します。

position が画像内の有効な座標ペアでない場合、または画像の形式がモノクロまたはパレット画像である場合、結果は未定義となります。

警告:この関数は 、内部で呼び出されるdetach() 関数の呼び出しにより、処理負荷が高くなります。パフォーマンスが懸念される場合は、scanLine() またはbits() を使用して、ピクセルデータに直接アクセスすることをお勧めします。

関連項目: pixelColor()、pixel()、bits()、scanLine()、およびPixel Manipulation 。

void QImage::setPixelColor(int x, int y, const QColor &color)

(x,y) のピクセル色をcolor に設定します。

これはオーバーロードされた関数です。

void QImage::setText(const QString &key, const QString &text)

画像のテキストを指定されたtext に設定し、指定されたkey に関連付けます。

単一のテキストブロック(つまり「コメント」や単なる説明文など)を保存したいだけの場合は、空のキーを渡すか、あるいは「Description」のような汎用的なキーを使用することができます。

save() またはQImageWriter::write() を呼び出すと、画像テキストが画像データに埋め込まれます。

すべての画像形式がテキストの埋め込みに対応しているわけではありません。特定の画像や形式がテキストの埋め込みに対応しているかどうかは、QImageWriter::supportsOption() を使用することで確認できます。以下に例を示します:

    QImageWriter writer;
    writer.setFormat("png");
    if(writer.supportsOption(QImageIOHandler::Description))
        qDebug() << "Png supports embedded text";

QImageWriter::supportedImageFormats() を使用すると、利用可能な画像形式を確認できます。

text() およびtextKeys()も参照してください 。

QSize QImage::size() const

画像のサイズ、すなわちwidth()およびheight()の値を返します。

Image Information およびdeviceIndependentSize()も参照してください 。

qsizetype QImage::sizeInBytes() const

画像データのサイズをバイト単位で返します。

bytesPerLine()、bits()、およびImage Informationも参照してください 。

[noexcept] void QImage::swap(QImage &other)

この画像をother と入れ替えます。この操作は非常に高速で、失敗することはありません。

QString QImage::text(const QString &key = QString()) const

指定されたkey に関連付けられた画像テキストを返します。指定されたkey が空文字列の場合、画像テキスト全体が、各キーとテキストのペアが改行で区切られた形式で返されます。

setText() およびtextKeys()も参照してください 。

QStringList QImage::textKeys() const

この画像のテキストキーを返します。

これらのキーを `text()` と組み合わせて使用することで、特定のキーに対応する画像テキストを一覧表示できます。

text()も参照してください 。

CGImageRef QImage::toCGImage() const

この `QImage` と同等の `CGImage ` を作成し、`CGImageRef ` ハンドルを返します。

返される CGImageRef は、QImage の暗黙的な共有に参加しており、QImage データへの参照を保持しています。CGImage は不変であり、QImage を決して切り離すことはありません。QImage への書き込みは、通常通り切り離しを行います。

この関数は高速であり、画像データのコピーや変換は行いません。

画像形式を変換できない場合、null の CGImageRef が返されます。この関数を使用するユーザーは、まずQImage を、Format_ARGB32_Premultiplied などのサポートされている形式に変換することができます。

画像に色空間が設定されていない場合、結果の CGImageRef の色空間は sRGB 色空間に設定されます。

[since 6.0] HBITMAP QImage::toHBITMAP() const

QImage のHBITMAP 版を作成します。

HBITMAP のハンドルを返します。

使用後は、呼び出し元がHBITMAP データを解放する責任があります。

BitBlt() などの標準的な GDI 呼び出しで使用する場合、画像はQImage::Format_RGB32 の形式である必要があります。

AlphaBlend() GDI 関数で結果の HBITMAP を使用する場合、画像の形式はQImage::Format_ARGB32_Premultiplied である必要があります(convertToFormat() を使用してください)。

結果として得られる HBITMAP をアプリケーションアイコンまたはシステムトレイアイコンとして使用する場合、画像の形式はQImage::Format_ARGB32 である必要があります。

この関数は Qt 6.0 で導入されました。

fromHBITMAP() およびconvertToFormat()も参照してください 。

[since 6.0] HICON QImage::toHICON(const QImage &mask = {}) const

QPixmap のHICON 相当を作成し、マスクmask を適用します。

mask が null でない場合、その形式はQImage::Format_Mono である必要があります。HICON のハンドルを返します。

使用後のHICON データの解放は、呼び出し側の責任です。

この関数は Qt 6.0 で導入されました。

fromHICON()も参照してください 。

[static noexcept] QImage::Format QImage::toImageFormat(QPixelFormat format)

format をQImage::Format

[static noexcept] QPixelFormat QImage::toPixelFormat(QImage::Format format)

format をQPixelFormat

QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const

指定された変換matrix および変換mode を用いて変換された画像のコピーを返します。

返される画像は、通常、元の画像と同じ {画像形式}{format} になります。 ただし、複雑な変換を行った場合、元の画像の変換されたピクセルがすべてのピクセルを覆い尽くさない画像になることがあります。そのような場合、それらの背景ピクセルには透明な色値が割り当てられ、元の画像にアルファチャンネルがなかったとしても、変換後の画像にはアルファチャンネル付きのフォーマットが与えられます。

matrix による変換は、不要な並進を補正するために内部的に調整されます。つまり、生成される画像は、元の画像のすべての変換済み点を包含する最小の画像となります。画像の変換に使用された実際の行列を取得するには、trueMatrix() 関数を使用してください。

他のオーバーロードとは異なり、この関数を使用すると、画像に対して遠近法変換を行うことができます。

trueMatrix() およびImage Transformationsも参照してください 。

[static] QTransform QImage::trueMatrix(const QTransform &matrix, int width, int height)

指定されたwidth 、height 、およびmatrix を用いて画像を変換するために実際に使用された行列を返します。

transformed() 関数を使用して画像を変形する場合、不要な並進を補正するために変形行列が内部的に調整されます。つまり、transformed() は、元の画像のすべての変形後の点を含む最小の画像を返します。この関数は、元の画像の点を新しい画像に正しく写像する、修正後の行列を返します。

他のオーバーロードとは異なり、この関数は、画像に対して透視変換を実行するために使用できる変換行列を作成します。

transformed() およびImage Transformationsも参照してください 。

bool QImage::valid(const QPoint &pos) const

pos が画像内の有効な座標ペアである場合は `true ` を返し、そうでない場合は `false` を返します。

rect() およびQRect::contains()も参照してください 。

bool QImage::valid(int x, int y) const

QPoint(x,y) が画像内の有効な座標ペアである場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

int QImage::width() const

画像の幅を返します。

Image Informationも参照してください 。

QImage::operator QVariant() const

画像をQVariant として返します。

bool QImage::operator!=(const QImage &image) const

この画像と指定された `image ` の内容が異なる場合は `true ` を返し、そうでない場合は `false` を返します。

幅が異なるなど、明らかな違いがない限り、比較処理に時間がかかる場合がありますが、そのような場合は関数はすぐに結果を返します。

operator=()も参照してください 。

[noexcept] QImage &QImage::operator=(QImage &&other)

other をこのQImage インスタンスに割り当てます。

QImage &QImage::operator=(const QImage &image)

指定されたimage の浅いコピーをこのイメージに割り当て、このイメージへの参照を返します。

浅いコピーに関する詳細については、暗黙的なデータ共有のドキュメントを参照してください。

copy() およびQImage()も参照してください 。

bool QImage::operator==(const QImage &image) const

この画像と指定された `image ` の内容が同一の場合は `true ` を返し、そうでない場合は `false` を返します。

明らかな違い(サイズや形式の違いなど)がない限り、比較処理は時間がかかる場合がありますが、そのような違いがある場合は、関数はすぐに結果を返します。

operator=()も参照してください 。

関連する非メンバー関数

QImageCleanupFunction

基本的な画像メモリ管理を実装するために使用できる、以下のシグネチャを持つ関数:

void myImageCleanupHandler(void *info);

QDataStream &operator<<(QDataStream &stream, const QImage &image)

指定されたimage を、指定されたstream にPNG画像として書き込みます。ただし、ストリームのバージョンが1の場合はBMP画像として書き込みます。なお、ストリームをファイルに書き込んでも、有効な画像ファイルは生成されません。

QImage::save() および「Qt データ型のシリアル化」も参照してください 。

QDataStream &operator>>(QDataStream &stream, QImage &image)

指定されたstream から画像を読み込み、指定されたimage に保存します。

QImage::load() および「Qt データ型のシリアル化」も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.