QPixmap Class
QPixmapクラスは、ペイントデバイスとして使用できるオフスクリーン画像表現です。詳細...
Header: | #include <QPixmap> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Inherits: | QPaintDevice |
Inherited By: |
- 継承メンバを含む全メンバ一覧
- 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 |
QVariant | 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 QBitmap QPicture QImage QPixmapは画面に画像を表示するために設計され、最適化されています。QBitmap はQPixmapを継承した便利なクラスで、深さは1です。isQBitmap()関数は、QPixmapオブジェクトが本当にビットマップであればtrue
を返し、そうでなければfalse
を返します。最後に、QPicture クラスは、QPainter コマンドを記録して再生するペイントデバイスです。
QPixmap は、QLabel またはQAbstractButton のサブクラス(QPushButton やQToolButton など)を使って簡単に画面に表示できます。QLabel には pixmap プロパティがあり、QAbstractButton にはアイコンプロパティがあります。
QPixmap クラスは暗黙的なデータ共有を使用しているため、QPixmap オブジェクトは値で渡すことができます。詳細については、暗黙的データ共有のドキュメントを参照してください。QPixmapオブジェクトはストリーミングすることもできます。
pixmapのピクセル・データは内部的なもので、基礎となるウィンドウ・システムによって管理されることに注意してください。QPixmap はQPaintDevice のサブクラスであるため、QPainter を使用して pixmap に直接描画することができます。ピクセルへのアクセスは、QPainter 関数を使用するか、QPixmap をQImage に変換することによってのみ可能です。ただし、fill() 関数は、指定した色で pixmap 全体を初期化するために使用できます。
QImage と QPixmap を変換する関数があります。通常、QImage クラスを使用して画像ファイルを読み込み、オプションで画像データを操作してから、QImage オブジェクトを QPixmap に変換して画面に表示します。また、操作を必要としない場合は、画像ファイルを直接QPixmapに読み込むこともできます。
QPixmapには、pixmapに関するさまざまな情報を取得するために使用できる関数が用意されています。さらに、pixmap の変換を可能にする関数もいくつかあります。
画像ファイルの読み書き
QPixmapは画像ファイルを読み込む方法をいくつか提供しています:ファイルは、QPixmap オブジェクトを作成するときに読み込むか、後でload() またはloadFromData() 関数を使用して読み込むことができます。画像を読み込むとき、ファイル名はディスク上の実際のファイルを参照するか、アプリケーションの組み込みリソースの1つを参照することができます。アプリケーションの実行ファイルに画像やその他のリソースファイルを埋め込む方法の詳細については、Qt Resource System の概要を参照してください。
QPixmapオブジェクトを保存するには、save ()関数を呼び出すだけです。
サポートされているファイル・フォーマットの完全なリストは、QImageReader::supportedImageFormats() およびQImageWriter::supportedImageFormats() 関数から入手できます。新しいファイルフォーマットはプラグインとして追加できます。デフォルトでは、Qt は以下のフォーマットをサポートしています:
フォーマット | 説明 | Qt のサポート |
---|---|---|
BMP | Windows ビットマップ | 読み書き可能 |
GIF | グラフィック交換フォーマット(オプション) | 読み込み |
JPG | ジョイント・フォトグラフィック・エキスパート・グループ | 読み取り/書き込み |
JPEG | ジョイント・フォトグラフィック・エキスパート・グループ | 読み書き |
PNG | ポータブルネットワークグラフィックス | 読み書き |
PBM | ポータブル・ビットマップ | 読み取り |
PGM | ポータブルグレイマップ | 読み取り |
PPM | ポータブルピクスマップ | 読み取り/書き込み |
XBM | X11ビットマップ | 読み書き |
XPM | X11 ピクスマップ | 読み書き |
ピクセルマップ情報
QPixmapは、pixmapに関する様々な情報を取得するために使用できる関数群を提供しています:
使用可能な関数 | |
---|---|
ジオメトリ | size ()、width ()、height ()関数は、pixmap のサイズに関する情報を提供します。rect() 関数は、画像を囲む矩形を返します。 |
アルファ成分 | hasAlphaChannel() は、pixmap がアルファチャンネルを尊重する形式である場合、true を返し、そうでない場合はfalse を返す。hasAlpha ()、setMask ()、mask ()関数はレガシーであり、使用すべきではありません。これらは非常に遅い可能性があります。createHeuristicMask() 関数は、この pixmap に対して 1-bpp のヒューリスティック・マスク(すなわちQBitmap )を作成して返します。この関数は、角の1つから色を選択し、その色のピクセルをすべてのエッジから削っていきます。createMaskFromColor() 関数は、指定された色に基づいて pixmap のマスク(すなわちQBitmap )を作成し、返します。 |
低レベル情報 | depth() 関数は、pixmap の深度を返します。defaultDepth() 関数は、デフォルトの深度、つまり、指定された画面でアプリケーションが使用する深度を返します。 cacheKey() 関数は、QPixmap オブジェクトの内容を一意に識別する番号を返します。 |
Pixmapの変換
QPixmap オブジェクトは、toImage() 関数を使用してQImage に変換できます。同様に、fromImage ()を使用して、QImage を QPixmap に変換できます。この操作が高価すぎる場合は、代わりにQBitmap::fromImage() を使用できます。
QPixmap を HICON へ、または HICON から変換するには、それぞれQImage::toHICON() およびQImage::fromHICON() 関数を使用できます(上記で説明したように、QPixmap をQImage に変換した後)。
ピクセルマップの変換
QPixmapは、元のpixmapを変換した新しいpixmapを作成するための関数を多数サポートしています:
scaled ()、scaledToWidth ()、scaledToHeight ()関数は、pixmapのスケーリングされたコピーを返し、copy ()関数は、元のpixmapのプレーンコピーであるQPixmapを作成します。
transformed() 関数は,与えられた変換行列と変換モードで変換された pixmap のコピーを返します.内部的には,不要な平行移動が補正されるように変換行列が調整されます.つまり,transformed() は,元の pixmap のすべての変換点を含む最小の pixmap を返します.静的なtrueMatrix() 関数は、pixmap の変換に使用される実際の行列を返します。
QBitmap,QImage,QImageReader, およびQImageWriterも参照してください 。
メンバ関数ドキュメント
QPixmap::QPixmap()
null pixmap を構築します。
isNull()も参照 。
[explicit]
QPixmap::QPixmap(const char *const[] xpm)
与えられたxpm データから pixmap を構築します。pixmap は有効な 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 で pixmap を構築します。width またはheight のいずれかが 0 の場合、null pixmap が構築されます。
isNull()も参照してください 。
QPixmap::QPixmap(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
与えられたfileName のファイルから pixmap を構築します。ファイルが存在しないか、不明な形式の場合、pixmap は null pixmap となる。
ローダは、指定されたformat を用いて pixmap の読み込みを試みる。format が指定 さ れていない と き (デフ ォ ル ト では こ れがデフ ォ ル ト ) 、 ロ ーダは フ ァ イ ル形式を推測す る ためのヘ ッ ダ を フ ァ イ ルにプ ロ ーブ し ます。
ファイル名は、ディスク上の実際のファイルか、アプリケーションの組み込みリソースのいずれかを指します。アプリケーションの実行ファイルに画像やその他のリソース・ファイルを埋め込む方法の詳細については、リソース・システムの概要を参照してください。
低解像度の結果に合うように画像を修正する必要がある場合(例えば32ビットから8ビットへの変換)、flags を使用して変換を制御します。
fileName 、format 、flags のパラメータは、load() に渡されます。つまり、fileName のデータはバイナリにコンパイルされない。fileName に相対パス(ファイル名のみなど)が含まれている場合、関連ファイルはランタイムの作業ディレクトリーからの相対パスで見つからなければならない。
Reading and Writing Image Filesも参照のこと 。
[explicit]
QPixmap::QPixmap(const QSize &size)
これはオーバーロードされた関数です。
与えられたsize の pixmap を構築します。
QPixmap::QPixmap(const QPixmap &pixmap)
与えられたpixmap のコピーである pixmap を構築します。
copy()も参照してください 。
[noexcept]
QPixmap::QPixmap(QPixmap &&other)
Move -other から QPixmap インスタンスを構築します。
swap() およびoperator=(QPixmap&&)も参照して ください。
[virtual noexcept]
QPixmap::~QPixmap()
pixmap を破棄します。
qint64 QPixmap::cacheKey() const
このQPixmap を識別する番号を返します。異なるQPixmap オブジェクトが同じキャッシュ・キーを持つことができるのは、それらが同じコンテンツを参照 している場合のみです。
cacheKey() は、pixmap が変更されると変更されます。
bool QPixmap::convertFromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
指定されたflags を使用して変換を制御し、この pixmap のデータを指定されたimage で置き換えます。引数flags は、Qt::ImageConversionFlags のビット OR です。flags に 0 を渡すと、すべてのデフォルトオプションが設定されます。このpixmapがNULLでないという結果が得られた場合、true
を返します。
fromImage()も参照してください 。
QPixmap QPixmap::copy(const QRect &rectangle = QRect()) const
与えられたrectangle で指定された pixmap のサブセットのディープコピーを返します。ディープコピーの詳細については、暗黙的データ共有のドキュメントを参照してください。
与えられたrectangle が空の場合、画像全体がコピーされます。
operator=(),QPixmap(),Pixmap Transformationsも参照してください 。
QPixmap QPixmap::copy(int x, int y, int width, int height) const
これはオーバーロードされた関数です。
矩形QRect (x,y,width,height )で指定される pixmap の部分集合のディープコピーを返します。
QBitmap QPixmap::createHeuristicMask(bool clipTight = true) const
この pixmap のヒューリスティックマスクを作成して返します。
この関数は,角の 1 つから 1 つの色を選択し,その色のピクセルを,すべての辺から削っていきます.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 に基づいて、この pixmap のマスクを作成して返します。mode がQt::MaskInColor の場合, maskColor に一致するすべてのピクセルは透明になります.mode がQt::MaskOutColor の場合、 maskColor に一致するすべてのピクセルは不透明になります。
この関数は、QImage との間で変換を行うため、遅い。
createHeuristicMask() およびQImage::createMaskFromColor()も参照 。
[static]
int QPixmap::defaultDepth()
アプリケーションが使用するデフォルトの pixmap の深さを返します。
すべてのプラットフォームで、プライマリ画面の深さが返されます。
注意: QGuiApplication は、この関数を呼び出す前に作成しておく必要があります。
depth()、QColormap::depth()、Pixmap Informationも参照 。
int QPixmap::depth() const
pixmapの深さを返します。
pixmapの深さは、bpp(bits per pixel)またはpixmapのビットプレーンとも呼ばれる。null の pixmap の深さは 0 です。
defaultDepth() およびPixmap Informationも参照 。
void QPixmap::detach()
共有 pixmap データから pixmap を切り離します。
pixmap は、その内容が変更されそうになると、Qt によって自動的に切り離されます。これは、pixmap を変更するほとんどすべてのQPixmap メンバ関数 (fill()、fromImage()、load() など)、および pixmap 上のQPainter::begin() で行われます。
detach()を明示的に呼び出さなければならない例外が2つあります。それは、handle()関数またはx11PictureHandle()関数(X11でのみ使用可能)を呼び出す場合です。そうでない場合、システム・コールを使用して行われた変更は、共有データに対して実行されます。
detach()関数は、参照が 1 つだけの場合や、pixmap がまだ初期化されていない場合に即座に返される。
[since 6.2]
QSizeF QPixmap::deviceIndependentSize() const
pixmap のサイズをデバイスに依存しないピクセル単位で返します。
この値は、ユーザインタフェースのサイズ計算で pixmap のサイズを使用するときに使用する必要があります。
戻り値は pixmap.size() / pixmap.devicePixelRatio() と等価です。
この関数は Qt 6.2 で導入されました。
qreal QPixmap::devicePixelRatio() const
pixmap のデバイスピクセル比率を返します。これはデバイスピクセルと デバイス非依存ピクセルの比率です。
この関数は、pixmap のサイズに基づいてレイアウトのジオメトリを計算するときに使用します。QSize layoutSize = image.size() / image.devicePixelRatio()
デフォルト値は1.0です。
setDevicePixelRatio() およびQImageReaderも参照してください 。
void QPixmap::fill(const QColor &color = Qt::white)
与えられたcolor で pixmap を埋めます。
pixmap が塗りつぶされている場合、この関数の効果は未定義です。
Pixmap Transformationsも参照して ください。
[static]
QPixmap QPixmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
与えられたimage を、変換を制御するために指定されたflags を用いて pixmap に変換します。引数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 を、可能であればコピーせずに pixmap に変換します。
[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
この pixmap がアルファチャンネルを持っているか、マスクを持っている場合はtrue
を返し、そうでない場合はfalse
を返します。
hasAlphaChannel() およびmask()も参照 。
bool QPixmap::hasAlphaChannel() const
pixmap がアルファチャネルを尊重するフォーマットを持っている場合はtrue
を返し、そうでない場合はfalse
を返します。
hasAlpha()も参照 。
int QPixmap::height() const
pixmap の高さを返します。
size() およびPixmap Informationも参照 。
bool QPixmap::isNull() const
null pixmap の場合はtrue
を返し、そうでない場合はfalse
を返す。
null pixmap は、幅も高さも内容も 0 です。null pixmap には描画できません。
bool QPixmap::isQBitmap() const
これがQBitmap の場合はtrue
を返し、それ以外の場合はfalse
を返します。
bool QPixmap::load(const QString &fileName, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
与えられたfileName の pixmap をファイルから読み込みます。pixmap が正常に読み込まれた場合は true を返し、そうでない場合は pixmap を無効にしてfalse
を返します。
ローダは、指定されたformat を使用して pixmap の読み込みを試みます。format が指定 さ れていない と き (デフ ォ ル ト では こ れがデフ ォ ル ト ) 、 ロ ーダはフ ァ イ ル形式を推測す る ためのヘ ッ ダを フ ァ イ ルに追加 し ます。
ファイル名は、ディスク上の実際のファイルか、アプリケーションの組み込みリソースのいずれかを指します。アプリケーションの実行ファイルにpixmapやその他のリソース・ファイルを埋め込む方法の詳細については、リソース・システムの概要を参照してください。
低解像度の結果に合うようにデータを変更する必要がある場合(32ビットから8ビットへの変換など)、flags を使用して変換を制御します。
QPixmapsは、メイン・スレッドでファイルからロードされると、自動的に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 から pixmap をロードします。pixmapが正常にロードされた場合はtrue
を返し、そうでない場合はpixmapを無効にしてfalse
を返す。
ローダは、指定されたformat を使用して pixmap の読み込みを試みます。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 から pixmap を読み込みます.
QBitmap QPixmap::mask() const
pixmap のアルファチャンネルからビットマップマスクを抽出します。
警告: これは高価な操作になる可能性があります。pixmap のマスクは, pixeldata から動的に抽出されます.
setMask() およびPixmap Informationも参照してください 。
QRect QPixmap::rect() const
pixmap を囲む矩形を返します.
Pixmap Informationも参照 。
bool QPixmap::save(const QString &fileName, const char *format = nullptr, int quality = -1) const
指定 さ れた画像フ ァ イ ルformat とquality の係数を用いて、 与えられたfileName のフ ァ イ ルに pixmap を保存 し ます。成功 し た と き は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 を書き込みます。こ れは、 た と えば、 pixmap を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 で指定された縦横比と変換モードを使用して、 pixmap を与えられたsize にスケーリングします。
- aspectRatioMode がQt::IgnoreAspectRatio の場合、 pixmap はsize にスケーリングされます。
- aspectRatioMode がQt::KeepAspectRatio の場合,pixmap は,縦横比を保ったまま,size 内の可能な限り大きな矩形に拡大縮小されます.
- aspectRatioMode がQt::KeepAspectRatioByExpanding の場合,pixmap は,アスペクト比を保ったまま,size の外側のできるだけ小さな矩形にスケーリングされます.
与えられたsize が空の場合,この関数は null pixmap を返します.
場合によっては,pixmap を拡大縮小するよりも,pixmap をスケールが設定されたペインタに描画する方が有益なことがあります.例えば、ペインターが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 に従って矩形にスケーリングした pixmap のコピーを返します.
width またはheight のいずれかが 0 または負の場合,この関数は null pixmap を返します.
QPixmap QPixmap::scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
画像のスケーリングされたコピーを返します。返された画像は,指定された変換mode を用いて,与えられたheight に拡大縮小されます.pixmap の幅は, pixmap の縦横比が保たれるように自動的に計算されます.
height が 0 または負の場合、 null pixmap が返されます。
isNull() およびPixmap Transformationsも参照してください 。
QPixmap QPixmap::scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
拡大縮小された画像のコピーを返します。返された画像は,指定された変換mode を用いて,与えられたwidth に拡大縮小されます.pixmap の縦横比が保たれるように, pixmap の高さが自動的に計算されます.
width が 0 か負の場合、 null pixmap が返されます。
isNull() およびPixmap Transformationsも参照してください 。
void QPixmap::scroll(int dx, int dy, const QRect &rect, QRegion *exposed = nullptr)
この pixmap の領域rect を (dx,dy) だけスクロールする。露出領域は変更されない。オプションで空のQRegion へのポインタを渡すと、 スクロール操作によってexposed になる領域を取得できます。
pixmap 上にアクティブなペインターがある間はスクロールできません。
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)
pixmap のデバイスピクセル比率を設定します。これは画像ピクセルとデバイス非依存ピクセルの比率です。
デフォルトのscaleFactor は 1.0 です。これを他の値に設定すると、2つの効果があります:
pixmap上で開かれたQPainterはスケーリングされます。例えば、200x200の画像に2.0の比率でペイントすると、有効な(デバイスに依存しない)ペイント境界は100x100になります。
QSize layoutSize = pixmap.size() / pixmap.devicePixelRatio() この正味の効果は、pixmap が大きな pixmap ではなく、高 DPI pixmap として表示されることです(Drawing High Resolution Versions of Pixmaps and Images を参照)。
devicePixelRatio() およびdeviceIndependentSize()も参照の こと。
void QPixmap::setMask(const QBitmap &mask)
マスクビットマップを設定する。
この関数は、mask を pixmap のアルファチャンネルと合成する。マ ス ク の ピ ク セル値が 1 の と き は、 pixmap の ピ ク セルは変化 し ない こ と を意味 し 、 値が 0 の と き は、 ピ ク セルは透明にな る こ と を意味 し ます。マスクは、この pixmap と同じサイズでなければなりません。
NULL マスクを設定するとマスクはリセットされ、それまで透明だったピクセルは黒くなります。pixmapが描画されているとき、この関数の効果は未定義です。
警告 この関数は高価な操作になる可能性があります。
mask()、Pixmap Transformations 、およびQBitmapも参照してください 。
QSize QPixmap::size() const
pixmap のサイズを返します。
width()、height()、Pixmap Informationも参照 。
[noexcept]
void QPixmap::swap(QPixmap &other)
pixmapother をこの pixmap と入れ替えます。この操作は非常に高速であり、失敗することはない。
QImage QPixmap::toImage() const
pixmap をQImage に変換する。 変換に失敗した場合、null画像を返す。
pixmap のビット深度が 1 ビ ッ ト の場合、 返 さ れ る 画像 も 1 ビ ッ ト の深度にな り ます。それ よ り 多 く のビ ッ ト を持つ画像は、 その基 と な る シ ス テ ムに近い形式で返 さ れます。通常、アルファを含むpixmapの場合はQImage::Format_ARGB32_Premultiplied 、アルファを含まないpixmapの場合はQImage::Format_RGB32 またはQImage::Format_RGB16 。
今のところ、モノクロ画像のアルファマスクは無視されることに注意してください。
fromImage() およびImage Formatsも参照してください 。
QPixmap QPixmap::transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const
与えられた変換transform と変換mode を用いて変換された pixmap のコピーを返します。元の pixmap は変更されません。
transform すなわち,生成される pixmap は,元の pixmap のすべての変換点を含む最小の pixmap となります.pixmapの変換に使用される実際の行列を取得するには、trueMatrix ()関数を使用します。
この関数は,QImage への変換,非自明な計算,およびQPixmap への変換を含むため,時間がかかります.
trueMatrix() およびPixmap Transformationsも参照してください .
[static]
QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
与えられたwidth,height およびmatrix を用いて pixmap を変換する際に用いられる実際の行列を返します.
transformed() 関数を用いて pixmap を変換する場合,変換行列は内部的に調整され,不要な平行移動が補正されます.つまり,transformed() は,元の pixmap のすべての変換点を含む最小の pixmap を返します.この関数は,元の pixmap の点を新しい pixmap に正しく写すように修正された行列を返します.
transformed() およびPixmap Transformationsも参照 .
int QPixmap::width() const
pixmap の幅を返します.
size() およびPixmap Information も参照 .
QVariant QPixmap::operator QVariant() const
pixmap をQVariant として返します。
bool QPixmap::operator!() const
null pixmap の場合はtrue
を返し、そうでない場合はfalse
を返します。
isNull()も参照 。
[noexcept]
QPixmap &QPixmap::operator=(QPixmap &&other)
Move- このQPixmap インスタンスにother を割り当てます。
QPixmap &QPixmap::operator=(const QPixmap &pixmap)
与えられたpixmap をこの pixmap に割り当て、この pixmap への参照を返します。
関連する非メンバ
QDataStream &operator<<(QDataStream &stream, const QPixmap &pixmap)
与えられたpixmap を PNG 画像として与えられたstream に書き込みます。ストリームをファイルに書き込んでも、有効な画像ファイルは生成されないことに注意してください。
QPixmap::save() およびQt データ型のシリアライズも参照してください 。
QDataStream &operator>>(QDataStream &stream, QPixmap &pixmap)
与えられたstream から、与えられたpixmap に画像を読み込みます。
QPixmap::load() およびSerializing Qt Data Typesも参照して ください。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。