QPixmap Class
QPixmap クラスは、描画デバイスとして使用できるオフスクリーン画像表現です。詳細...
| ヘッダー: | #include <QPixmap> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QPaintDevice |
| 継承元: |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QPixmap は、描画クラスおよび暗黙的に共有されるクラスの一部です。
パブリック関数
| QPixmap() | |
| QPixmap(const char *const[] xpm) | |
| QPixmap(int width, int height) | |
| QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) | |
| QPixmap(const QSize &size) | |
| QPixmap(const QPixmap &pixmap) | |
| QPixmap(QPixmap &&other) | |
| virtual | ~QPixmap() |
| qint64 | cacheKey() const |
| bool | convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | copy(const QRect &rectangle = QRect()) const |
| QPixmap | copy(int x, int y, int width, int height) const |
| QBitmap | createHeuristicMask(bool clipTight = true) const |
| QBitmap | createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const |
| int | depth() const |
| void | detach() |
(since 6.2) QSizeF | deviceIndependentSize() const |
| qreal | devicePixelRatio() const |
| void | fill(const QColor &color = Qt::white) |
| bool | hasAlpha() const |
| bool | hasAlphaChannel() const |
| int | height() const |
| bool | isNull() const |
| bool | isQBitmap() const |
| bool | load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| bool | loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| bool | loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QBitmap | mask() const |
| QRect | rect() 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 |
| QPixmap | scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QPixmap | scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const |
| QPixmap | scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const |
| QPixmap | scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const |
| void | scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr) |
| void | scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr) |
| void | setDevicePixelRatio(qreal scaleFactor) |
| void | setMask(const QBitmap &mask) |
| QSize | size() const |
| void | swap(QPixmap &other) |
| QImage | toImage() const |
| QPixmap | transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const |
| int | width() const |
| operator QVariant() const | |
| bool | operator!() const |
| QPixmap & | operator=(QPixmap &&other) |
| QPixmap & | operator=(const QPixmap &pixmap) |
静的パブリックメンバー
| int | defaultDepth() |
| QPixmap | fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QPixmap | fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| QTransform | trueMatrix(const QTransform &matrix, int width, int height) |
関連する非メンバー
| QDataStream & | operator<<(QDataStream &stream, const QPixmap &pixmap) |
| QDataStream & | operator>>(QDataStream &stream, QPixmap &pixmap) |
詳細な説明
Qt には、画像データを扱うための 4 つのクラス、QImage 、QPixmap、QBitmap 、QPicture が用意されています。QImage は、I/O およびピクセルへの直接アクセスや操作のために設計・最適化されており、一方、QPixmap は画面上での画像表示のために設計・最適化されています。QBitmap は、QPixmap を継承し、深度を 1 に保証する、単なる便宜上のクラスです。isQBitmap() 関数は、QPixmap オブジェクトが実際にビットマップである場合はtrue を返し、そうでない場合はfalse を返します。最後に、QPicture クラスは、QPainter コマンドを記録および再生するペイントデバイスです。
QPixmapは、QLabel や、QAbstractButton のサブクラス(QPushButton やQToolButton など)のいずれかを使用して、画面上に簡単に表示できます。QLabel にはpixmapプロパティがあり、QAbstractButton にはiconプロパティがあります。
QPixmapクラスは暗黙的なデータ共有を使用しているため、QPixmapオブジェクトは値渡しで渡すことができます。詳細については、「暗黙的なデータ共有」のドキュメントを参照してください。また、QPixmapオブジェクトはストリームとして扱うことも可能です。
なお、ピクマップ内のピクセルデータは内部的なものであり、基盤となるウィンドウシステムによって管理されます。QPixmapはQPaintDevice のサブクラスであるため、QPainter を使用してピクマップ上に直接描画することができます。 ピクセルへのアクセスは、QPainter の関数を介するか、QPixmapをQImage に変換する場合にのみ可能です。ただし、fill()関数を使用すれば、ピクマップ全体を指定された色で初期化することができます。
QImage とQPixmapの間を変換する関数が用意されています。通常、QImage クラスを使用して画像ファイルを読み込み、必要に応じて画像データを操作した後、QImage オブジェクトをQPixmapに変換して画面に表示します。あるいは、操作を必要としない場合は、画像ファイルをQPixmapに直接読み込むこともできます。
QPixmap には、ピクマップに関するさまざまな情報を取得するために使用できる一連の関数が用意されています。さらに、ピクマップの変換を可能にする関数もいくつかあります。
画像ファイルの読み込みと書き込み
QPixmap には、画像ファイルを読み込むためのいくつかの方法があります。QPixmap オブジェクトの構築時にファイルをロードすることも、後で `load()` または `loadFromData()` 関数を使用してロードすることもできます。画像をロードする際、ファイル名はディスク上の実際のファイル、あるいはアプリケーションに埋め込まれたリソースのいずれかを指すことができます。 アプリケーションの実行ファイルに画像やその他のリソースファイルを埋め込む方法の詳細については、「Qtリソースシステムの概要」を参照してください。
QPixmap オブジェクトを保存するには、save() 関数を呼び出すだけです。
サポートされているファイル形式の完全なリストは、QImageReader::supportedImageFormats() およびQImageWriter::supportedImageFormats() 関数を通じて確認できます。新しいファイル形式はプラグインとして追加可能です。デフォルトでは、Qt は以下の形式をサポートしています:
| 形式 | 説明 | Qtでのサポート状況 |
|---|---|---|
| BMP | Windows ビットマップ | 読み取り/書き込み |
| CUR | Windows カーソル | 読み取り/書き込みCURWindows カーソル |
| GIF | グラフィック・インターチェンジ・フォーマット | 読み取り |
| ICO | Windows アイコン | 読み取り/書き込み |
| JFIF | JPEGファイル交換フォーマット | 読み取り/書き込み |
| JPEG | Joint Photographic Experts Group | 読み取り/書き込み |
| JPG | Joint Photographic Experts Group | 読み取り/書き込み |
| PBM | ポータブル・ビットマップ | 読み取り/書き込み |
| PGM | ポータブル・グレイマップ | 読み取り/書き込み |
| PNG | ポータブル・ネットワーク・グラフィックス | 読み取り/書き込み |
| PPM | Portable Pixmap | 読み取り/書き込み |
| SVG | スケーラブル・ベクター・グラフィックス | 読み取り |
| SVGZ | スケーラブル・ベクター・グラフィックス(圧縮) | 読み込み |
| XBM | X11 ビットマップ | 読み取り/書き込み |
| XPM | X11 ピクマップ | 読み取り/書き込み |
以下のモジュールがインストールされていれば、その他の形式もサポートされます。 Qt Image Formats モジュールがインストールされている場合、その他のフォーマットもサポートされます。
ピクマップ情報
QPixmap は、ピクマップに関する様々な情報を取得するために使用できる一連の関数を提供します:
| 利用可能な関数 | |
|---|---|
| ジオメトリ | size()、width()、およびheight() 関数は、ピクマップのサイズに関する情報を提供します。rect() 関数は、画像を囲む矩形を返します。 |
| アルファ成分 | hasAlphaChannel() は、ピクマップのフォーマットがアルファチャンネルに対応している場合はtrue を返し、そうでない場合はfalse を返します。hasAlpha()、setMask()、およびmask() 関数はレガシー関数であり、使用すべきではありません。これらの関数は処理が非常に遅くなる可能性があります。createHeuristicMask() 関数は、このピクマップに対して 1 bpp のヒューリスティックマスク(すなわちQBitmap )を作成して返します。この関数は、四隅のいずれかから色を選択し、すべてのエッジから順にその色のピクセルを削り取ることで動作します。createMaskFromColor() 関数は、指定された色に基づいて、このピクマップ用のマスク(すなわちQBitmap )を作成して返します。 |
| 低レベル情報 | depth() 関数は、ピクマップの深度を返します。defaultDepth() 関数は、デフォルトの深度、すなわち指定された画面上でアプリケーションが使用する深度を返します。 cacheKey() 関数は、QPixmap オブジェクトの内容を一意に識別する番号を返します。 |
ピクマップの変換
QPixmapオブジェクトは、toImage()関数を使用してQImage に変換できます。同様に、QImage はfromImage()を使用してQPixmapに変換できます。この操作のコストが高すぎる場合は、代わりにQBitmap::fromImage()を使用できます。
QPixmapとHICON間の変換を行うには、それぞれQImage::toHICON()およびQImage::fromHICON()関数を使用できます(前述のように、QPixmapをQImage に変換した後に行います)。
ピクマップの変換
QPixmap には、元のピクマップを変形させた新しいピクマップを作成するための関数がいくつか用意されています:
scaled()、scaledToWidth()、およびscaledToHeight() 関数は、ピクマップの拡大・縮小されたコピーを返します。一方、copy() 関数は、元のピクマップの単純なコピーである QPixmap を作成します。
transformed() 関数は、指定された変換行列と変換モードを用いて変換されたピクマップのコピーを返します。内部的には、不要な平行移動を補正するために変換行列が調整されます。つまり、transformed() は、元のピクマップのすべての変換後の点を包含する最小のピクマップを返します。静的関数であるtrueMatrix() は、ピクマップの変換に使用された実際行列を返します。
QBitmap 、QImage 、QImageReader 、およびQImageWriterも参照してください 。
メンバ関数のドキュメント
QPixmap::QPixmap()
ヌルピクマップを作成します。
isNull()も参照してください 。
[explicit] QPixmap::QPixmap(const char *const[] xpm)
指定されたxpm データからピクマップを構築します。このデータは、有効なXPM画像である必要があります。
エラーは黙って無視されます。
なお、少し変わった宣言を使用することで、XPM変数のサイズをわずかに縮小することが可能です。
static const char * const start_xpm[] = {
"16 15 8 1",
"a c #cec6bd",
// etc.
};余分なconst により、定義全体が読み取り専用になります。これにより、(たとえば、コードが共有ライブラリ内にある場合など)効率がわずかに向上し、アプリケーションをROMに格納する場合にもROM化が可能になります。
QPixmap::QPixmap(int width, int height)
指定されたwidth およびheight を使用して、ピクマップを構築します。width またはheight のいずれかが0の場合、ヌルピクマップが構築されます。
警告: これにより 、初期化されていないデータを持つ QPixmap が作成されます。QPainter を使用して描画を行う前に、fill() を呼び出して、ピクマップを適切な色で塗りつぶしてください。
isNull()も参照してください 。
QPixmap::QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたfileName を持つファイルからピクマップを作成します。ファイルが存在しない場合や形式が不明な場合、ピクマップはnullピクマップとなります。
ローダーは、指定されたformat を使用してピクマップの読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ローダーはファイル内のヘッダーを調査してファイル形式を推測します。
ファイル名は、ディスク上の実際のファイル、またはアプリケーションの組み込みリソースのいずれかを指すことができます。アプリケーションの実行ファイルに画像やその他のリソースファイルを組み込む方法の詳細については、「リソースシステムの概要」を参照してください。
低解像度の出力に合わせて画像を変更する必要がある場合(例:32ビットから8ビットへの変換)、flags を使用して変換を制御します。
fileName 、format 、およびflags の各パラメータは、load() 関数に渡されます。つまり、fileName 内のデータはバイナリにコンパイルされません。fileName に相対パス(例:ファイル名のみ)が含まれている場合、該当するファイルはランタイムの作業ディレクトリを基準として検索される必要があります。
Reading and Writing Image Filesも参照してください 。
[explicit] QPixmap::QPixmap(const QSize &size)
指定されたsize のピクマップを作成します。
警告: これにより 、初期化されていないデータを持つ QPixmap が作成されます。QPainter を使用して描画を行う前に、fill() を呼び出して、ピクマップを適切な色で塗りつぶしてください。
これはオーバーロードされた関数です。
QPixmap::QPixmap(const QPixmap &pixmap)
指定されたpixmap のコピーであるピクマップを作成します。
copy()も参照してください 。
[noexcept] QPixmap::QPixmap(QPixmap &&other)
other から QPixmap インスタンスをムーブコンストラクタで生成します。
swap() およびoperator=(QPixmap&&)も参照してください 。
[virtual noexcept] QPixmap::~QPixmap()
ピクマップを破棄します。
qint64 QPixmap::cacheKey() const
このQPixmap を識別する数値を返します。異なるQPixmap オブジェクトが同じキャッシュキーを持つのは、それらが同じコンテンツを参照している場合に限られます。
pixmapが変更されると、cacheKey()の値も変化します。
bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたflags を使用して変換を制御し、このピクマップのデータを指定されたimage に置き換えます。flags 引数は、Qt::ImageConversionFlags のビット単位のOR演算の結果です。flags に0を指定すると、すべてのデフォルトオプションが設定されます。結果としてこのピクマップがnullでなくなった場合、true を返します。
fromImage()も参照してください 。
QPixmap QPixmap::copy(const QRect &rectangle = QRect()) const
指定されたrectangle によって指定されたピクマップのサブセットのディープコピーを返します。ディープコピーの詳細については、「暗黙的なデータ共有」のドキュメントを参照してください。
指定されたrectangle が空の場合、画像全体がコピーされます。
operator=()、QPixmap()、およびPixmap Transformationsも参照してください 。
QPixmap QPixmap::copy(int x, int y, int width, int height) const
矩形QRect (x 、y 、width 、height )で指定されたピクマップのサブセットのディープコピーを返します。
これはオーバーロードされた関数です。
QBitmap QPixmap::createHeuristicMask(bool clipTight = true) const
このピクマップに対するヒューリスティックマスクを作成して返します。
この関数は、四隅のいずれかから色を選択し、すべてのエッジから順にその色のピクセルを削り取ることで動作します。clipTight がtrue(デフォルト)の場合、マスクはピクセルを覆うのにちょうど十分な大きさになります。そうでない場合、マスクはデータピクセルよりも大きくなります。
マスクは完璧ではないかもしれませんが、妥当な結果が得られるはずですので、次のような処理を行うことができます:
QPixmap myPixmap;
myPixmap.setMask(myPixmap.createHeuristicMask());この関数は、QImage への変換やそこから元のデータへの変換、および非自明な計算を伴うため、処理に時間がかかります。
QImage::createHeuristicMask() およびcreateMaskFromColor()も参照してください 。
QBitmap QPixmap::createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const
指定されたmaskColor に基づいて、このピクマップ用のマスクを作成して返します。mode がQt::MaskInColor の場合、maskColorに一致するすべてのピクセルは透明になります。mode がQt::MaskOutColor の場合、maskColorに一致するすべてのピクセルは不透明になります。
この関数は、QImage との変換を伴うため、処理に時間がかかります。
createHeuristicMask() およびQImage::createMaskFromColor()も参照してください 。
[static] int QPixmap::defaultDepth()
アプリケーションで使用されるデフォルトのピクマップ深度を返します。
すべてのプラットフォームにおいて、プライマリ画面の深度が返されます。
注: この関数を呼び出す前に、QGuiApplication を作成しておく必要があります。
関連項目: depth() およびPixmap Information 。
int QPixmap::depth() const
ピクマップの深度を返します。
ピクマップの深度は、ピクセルあたりのビット数 (bpp) またはピクマップのビットプレーンとも呼ばれます。ヌルピクマップの深度は 0 です。
defaultDepth() およびPixmap Informationも参照してください 。
void QPixmap::detach()
ピクマップを共有ピクマップデータから切り離します。
ピクマップの内容が変更されようとするたびに、Qt によって自動的に切り離されます。これは、ピクマップを変更するほぼすべての `QPixmap ` メンバ関数(fill()、fromImage()、load() など)および、ピクマップに対する `QPainter::begin()` 関数において行われます。
detach() を明示的に呼び出す必要がある例外が 2 つあります。それは、handle() 関数または x11PictureHandle() 関数(X11 でのみ利用可能)を呼び出す場合です。それ以外の場合、システムコールを使用して行われた変更はすべて、共有データに対して実行されます。
参照が 1 つしかない場合、またはピクマップがまだ初期化されていない場合、detach() 関数は直ちに返ります。
[since 6.2] QSizeF QPixmap::deviceIndependentSize() const
ピクマップのサイズを、デバイス非依存ピクセル単位で返します。
この値は、ユーザーインターフェースのサイズ計算でピクマップのサイズを使用する際に利用すべきです。
戻り値は、pixmap.size() / pixmap.devicePixelRatio() と同等です。
この関数は Qt 6.2 で導入されました。
qreal QPixmap::devicePixelRatio() const
ピクマップのデバイスピクセル比を返します。これは、デバイスピクセルとデバイス非依存ピクセルの比率です。
ピクマップのサイズに基づいてレイアウトのジオメトリを計算する際に、この関数を使用します:QSize layoutSize = image.size() / image.devicePixelRatio()
デフォルト値は 1.0 です。
setDevicePixelRatio() およびQImageReaderも参照してください 。
void QPixmap::fill(const QColor &color = Qt::white)
指定されたcolor でピクマップを塗りつぶします。
ピクマップへの描画処理が行われている最中、この関数の動作は未定義となります。
Pixmap Transformationsも参照してください 。
[static] QPixmap QPixmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたimage を、指定されたflags を用いて変換を制御しながらピクマップに変換します。flags 引数は、Qt::ImageConversionFlags のビット単位の論理和(OR)です。flags に0を指定すると、すべてのオプションがデフォルト設定になります。
モノクロおよび8ビット画像の場合、画像はまず32ビットのピクマップに変換され、その後、カラーテーブルの色で塗りつぶされます。この処理の負荷が高すぎる場合は、代わりにQBitmap::fromImage()を使用することができます。
fromImageReader()、toImage()、およびPixmap Conversionも参照してください 。
[static] QPixmap QPixmap::fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたimage を、可能であればコピーを行わずにピクマップに変換します。
これはオーバーロードされた関数です。
[static] QPixmap QPixmap::fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor)
imageReader から直接読み込んだ画像から、QPixmap を作成します。flags 引数は、Qt::ImageConversionFlags のビット単位のOR演算の結果です。flags に0を指定すると、すべてのデフォルトオプションが設定されます。
一部のシステムでは、画像をQPixmap に直接読み込む方が、QImage を読み込んでQPixmap に変換するよりもメモリ使用量を抑えられる場合があります。
fromImage()、toImage()、およびPixmap Conversionも参照してください 。
bool QPixmap::hasAlpha() const
このピクマップにアルファチャンネルまたはマスクがある場合は `true ` を返し、そうでない場合は `false` を返します。
hasAlphaChannel() およびmask()も参照してください 。
bool QPixmap::hasAlphaChannel() const
ピクマップのフォーマットがアルファチャンネルに対応している場合は `true ` を返し、そうでない場合は `false` を返します。
hasAlpha()も参照してください 。
int QPixmap::height() const
ピクマップの高さを返します。
size() およびPixmap Informationも参照してください 。
bool QPixmap::isNull() const
これがヌルピクマップの場合は `true ` を返し、それ以外の場合は `false` を返します。
null ピクマップは、幅が 0、高さが 0 で、内容がありません。null ピクマップには描画を行うことはできません。
bool QPixmap::isQBitmap() const
これがQBitmap である場合はtrue を返し、そうでない場合はfalse を返します。
bool QPixmap::load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたfileName を持つファイルからピクマップを読み込みます。ピクマップの読み込みに成功した場合はtrueを返します。そうでない場合は、ピクマップを無効化し、false を返します。
ローダーは、指定されたformat を使用してピクマップの読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ローダーはファイル内のヘッダーを調査してファイル形式を推測します。
ファイル名は、ディスク上の実際のファイル、またはアプリケーションの埋め込みリソースのいずれかを指すことができます。ピクマップやその他のリソースファイルをアプリケーションの実行ファイルに埋め込む方法の詳細については、「リソースシステムの概要」を参照してください。
データを低解像度(例えば、32 ビットから 8 ビットへの変換)に合わせて変更する必要がある場合は、flags を使用して変換を制御してください。
なお、メインスレッドでファイルから読み込まれた場合、QPixmapは自動的にQPixmapCache に追加されます。この際に使用されるキーは内部用であり、取得することはできません。
loadFromData() およびReading and Writing Image Filesも参照してください 。
bool QPixmap::loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたバイナリデータ `data` の先頭 `len ` バイトからピクマップを読み込みます。ピクマップの読み込みに成功した場合は `true ` を返します。失敗した場合は、ピクマップを無効化し、`false` を返します。
ローダーは、指定されたformat を使用してピクマップの読み込みを試みます。format が指定されていない場合(これがデフォルトです)、ローダーはファイル内のヘッダーを調査してファイル形式を推測します。
データを低解像度の出力に合わせるために変更する必要がある場合(例:32ビットから8ビットへの変換)、flags を使用して変換を制御します。
load() およびReading and Writing Image Filesも参照してください 。
bool QPixmap::loadFromData(const QByteArray &data, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたformat および変換flags を使用して、バイナリdata からピクマップを読み込みます。
これはオーバーロードされた関数です。
QBitmap QPixmap::mask() const
ピクマップのアルファチャンネルからビットマップマスクを抽出します。
警告: この操作は 処理負荷が高くなる可能性があります。ピクマップのマスクは、ピクセルデータから動的に抽出されます。
setMask() およびPixmap Informationも参照してください 。
QRect QPixmap::rect() const
ピクマップを囲む矩形を返します。
Pixmap Informationも参照してください 。
bool QPixmap::save(const QString &fileName, const char *format = nullptr, int quality = -1) const
指定されたfileName を使用して、指定された画像ファイルformat およびquality 係数を用いて、ピクマップをファイルに保存します。成功した場合はtrue を返し、失敗した場合はfalse を返します。
quality ファクターは、[0,100]または-1の範囲で指定する必要があります。圧縮サイズの小さいファイルを得るには0を、圧縮されていない大きなファイルを得るには100を、デフォルト設定を使用するには-1を指定します。
format がnullptr の場合、fileName の拡張子から画像形式が選択されます。
Reading and Writing Image Filesも参照してください 。
bool QPixmap::save(QIODevice *device, const char *format = nullptr, int quality = -1) const
この関数は、指定された画像ファイル `format ` および `quality ` ファクターを使用して、指定された `device ` に `QPixmap ` を書き込みます。これは、例えば、ピクマップを `QByteArray` に直接保存する場合などに使用できます:
QPixmap pixmap;
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG formatこれはオーバーロードされた関数です。
QPixmap QPixmap::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
aspectRatioMode およびtransformMode で指定されたアスペクト比と変換モードを使用して、ピクマップを指定されたsize に拡大・縮小します。

- aspectRatioMode がQt::IgnoreAspectRatio の場合、ピクマップはsize にスケーリングされます。
- aspectRatioMode がQt::KeepAspectRatio の場合、ピクマップはアスペクト比を維持したまま、size の範囲内で可能な限り大きな長方形にスケーリングされます。
- aspectRatioMode がQt::KeepAspectRatioByExpanding の場合、ピクマップはアスペクト比を維持したまま、size の外側に収まる可能な限り小さい長方形に拡大縮小されます。
指定された `size ` が空の場合、この関数は null ピクマップを返します。
場合によっては、ピクマップをスケーリングするよりも、スケールが設定されたペインターにピクマップを描画するほうが有利なことがあります。これは、たとえばペインターが OpenGL に基づいている場合や、スケール係数が急激に変化する場合などが該当します。
isNull() およびPixmap Transformationsも参照してください 。
QPixmap QPixmap::scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
指定された `width ` および `height ` に基づき、指定された `aspectRatioMode ` および `transformMode` に従って、ピクマップを矩形にスケーリングしたコピーを返します。
width またはheight のいずれかが 0 または負の値の場合、この関数は null ピクマップを返します。
これはオーバーロードされた関数です。
QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
画像の拡大・縮小されたコピーを返します。返される画像は、指定された変換mode を用いて、指定されたheight に拡大・縮小されます。ピクマップの縦横比が維持されるよう、ピクマップの幅は自動的に計算されます。
height が0または負の値の場合、nullのピクマップが返されます。
isNull() およびPixmap Transformationsも参照してください 。
QPixmap QPixmap::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
画像の拡大・縮小されたコピーを返します。返される画像は、指定された変換mode を用いて、指定されたwidth に拡大・縮小されます。ピクマップのアスペクト比が維持されるよう、ピクマップの高さは自動的に計算されます。
width が 0 または負の値の場合、null ピクマップが返されます。
isNull() およびPixmap Transformationsも参照してください 。
void QPixmap::scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)
このピクマップのrect 領域を、(dx,dy)分スクロールします。露出している領域は変更されません。オプションで、空のQRegion へのポインタを渡すことで、スクロール操作によってexposed された領域を取得することができます。
ピクマップ上でアクティブなペインターが存在している間は、スクロールを行うことはできません。
QWidget::scroll() およびQGraphicsItem::scroll()も参照してください 。
void QPixmap::scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed = nullptr)
この便利関数は、QPixmap::scroll(dx,dy,QRect(x,y,width,height),exposed) を呼び出すのと同じです。
QWidget::scroll() およびQGraphicsItem::scroll()も参照してください 。
void QPixmap::setDevicePixelRatio(qreal scaleFactor)
ピクマップのデバイスピクセル比を設定します。これは、画像ピクセルとデバイス非依存ピクセルの比率です。
scaleFactor のデフォルト値は1.0です。これ以外の値に設定すると、次の2つの影響があります。
ピクマップ上で開かれるQPainterはスケーリングされます。例えば、比率が2.0の場合、200x200の画像への描画は、実質的な(デバイス非依存の)描画範囲が100x100となります。
Qt内でピクマップのサイズに基づいてレイアウトのジオメトリを計算するコードパスでは、この比率が考慮されます:QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio()これにより、ピクマップは大きなピクマップとしてではなく、高DPIピクマップとして表示されることになります(Drawing High Resolution Versions of Pixmaps and Images を参照)。
devicePixelRatio() およびdeviceIndependentSize()も参照してください 。
void QPixmap::setMask(const QBitmap &mask)
マスクビットマップを設定します。
この関数は、mask をピクマップのアルファチャンネルと合成します。マスク上のピクセル値が 1 の場合、ピクマップのピクセルは変更されません。値が 0 の場合、そのピクセルは透明になります。マスクは、このピクマップと同じサイズでなければなりません。
マスクを null に設定すると、マスクがリセットされ、以前に透明だったピクセルは黒になります。ピクマップへの描画が行われている最中にこの関数を実行した場合、その動作は未定義となります。
警告:この操作は 処理負荷が高くなる可能性があります。
関連項目: mask()、Pixmap Transformations 、およびQBitmap 。
QSize QPixmap::size() const
ピクマップのサイズを返します。
width()、height()、およびPixmap Informationも参照してください 。
[noexcept] void QPixmap::swap(QPixmap &other)
このピクマップをother と入れ替えます。この操作は非常に高速で、失敗することはありません。
QImage QPixmap::toImage() const
ピクマップをQImage に変換します。変換に失敗した場合は、null画像を返します。
ピクマップのビット深度が1ビットの場合、返される画像のビット深度も1ビットになります。それ以上のビット深度を持つ画像は、基になるシステムに最も近い形式で返されます。通常、アルファチャンネルを持つピクマップの場合はQImage::Format_ARGB32_Premultiplied 、アルファチャンネルを持たないピクマップの場合はQImage::Format_RGB32 またはQImage::Format_RGB16 となります。
なお、現時点では、モノクロ画像のアルファマスクは無視されることに注意してください。
fromImage() およびImage Formatsも参照してください 。
QPixmap QPixmap::transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const
指定された変換関数 `transform ` および `mode` を用いて変換されたピクマップのコピーを返します。元のピクマップは変更されません。
変換transform は、不要な並進を補正するために内部で調整されます。つまり、生成されるピクマップは、元のピクマップの変換後のすべての点を包含する最小のピクマップとなります。ピクマップの変換に使用された実際の行列を取得するには、trueMatrix()関数を使用してください。
この関数は、QImage への変換、複雑な計算、およびQPixmap への逆変換を伴うため、処理に時間がかかります。
trueMatrix() およびPixmap Transformationsも参照してください 。
[static] QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
指定されたwidth 、height 、およびmatrix を用いてピクマップを変換するために使用された実際行列を返します。
transformed() 関数を使用してピクマップを変形する場合、不要な並進を補正するために変形行列が内部で調整されます。つまり、transformed() は、元のピクマップのすべての変形された点を包含する最小のピクマップを返します。この関数は、元のピクマップから新しいピクマップへ点を正しくマッピングする、修正後の行列を返します。
transformed() およびPixmap Transformationsも参照してください 。
int QPixmap::width() const
ピクマップの幅を返します。
size() およびPixmap Informationも参照してください 。
QPixmap::operator QVariant() const
ピクマップをQVariant として返します。
bool QPixmap::operator!() const
これがヌルピクマップの場合は `true ` を返し、それ以外の場合は `false` を返します。
isNull()も参照してください 。
[noexcept] QPixmap &QPixmap::operator=(QPixmap &&other)
other をこのQPixmap インスタンスに割り当てます。
QPixmap &QPixmap::operator=(const QPixmap &pixmap)
指定されたpixmap をこのピクマップに割り当て、このピクマップへの参照を返します。
関連する非メンバー関数
QDataStream &operator<<(QDataStream &stream, const QPixmap &pixmap)
指定されたpixmap を、指定されたstream にPNG画像として書き込みます。なお、このストリームをファイルに書き込んでも、有効な画像ファイルは生成されません。
QPixmap::save() およびQt データ型のシリアル化も参照してください 。
QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)
指定されたstream から画像を読み込み、指定されたpixmap に書き込みます。
QPixmap::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.