QColorSpace Class

QColorSpace クラスは色空間を抽象化したものです。詳細...

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

パブリックタイプ

(since 6.8) enum class ColorModel { Undefined, Rgb, Gray, Cmyk }
enum NamedColorSpace { SRgb, SRgbLinear, AdobeRgb, DisplayP3, ProPhotoRgb, …, Bt2100Hlg }
enum class Primaries { Custom, SRgb, AdobeRgb, DciP3D65, ProPhotoRgb, Bt2020 }
enum class TransferFunction { Custom, Linear, Gamma, SRgb, ProPhotoRgb, …, Hlg }
(since 6.8) enum class TransformModel { ThreeComponentMatrix, ElementListProcessing }

パブリック関数

QColorSpace()
QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)
(since 6.1) QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)
QColorSpace(QColorSpace::Primaries primaries, float gamma)
(since 6.8) QColorSpace(QPointF whitePoint, const QList<uint16_t> &transferFunctionTable)
QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.8) QColorSpace(QPointF whitePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &transferFunctionTable)
QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
(since 6.8) QColorSpace::ColorModel colorModel() const
(since 6.2) QString description() const
float gamma() const
QByteArray iccProfile() const
bool isValid() const
(since 6.8) bool isValidTarget() const
QColorSpace::Primaries primaries() const
(since 6.2) void setDescription(const QString &description)
void setPrimaries(QColorSpace::Primaries primariesId)
void setPrimaries(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint)
(since 6.1) void setTransferFunction(const QList<uint16_t> &transferFunctionTable)
void setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) void setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
(since 6.8) void setWhitePoint(QPointF whitePoint)
void swap(QColorSpace &other)
QColorSpace::TransferFunction transferFunction() const
(since 6.8) QColorSpace::TransformModel transformModel() const
QColorTransform transformationToColorSpace(const QColorSpace &colorspace) const
(since 6.8) QPointF whitePoint() const
(since 6.1) QColorSpace withTransferFunction(const QList<uint16_t> &transferFunctionTable) const
QColorSpace withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const
(since 6.1) QColorSpace withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const
QVariant operator QVariant() const

静的パブリックメンバ

QColorSpace fromIccProfile(const QByteArray &iccProfile)
bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
QDataStream &operator<<(QDataStream &stream, const QColorSpace &colorSpace)
bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)

詳細説明

色の値はさまざまな方法で解釈することができ、その解釈に基づいて異なる空間に住むことができます。これを色空間と呼ぶ。

QColorSpace は、いくつかの定義済み色空間を作成するためのアクセスを提供し、ある色空間から別の色空間へ色を変換するための QColorTransforms を生成できます。

QColorSpace は、 ICC プ ロ フ ァ イ ルに よ っ て定義 さ れ る 色空間や、 画像に埋め込まれてい る 色空間を表す こ と も で き ます。

色空間は一般に、原色の集合と伝達関数の組み合わせとして考えることができます。原色は色空間の軸を定義し、伝達関数は値が軸上にどのようにマッピングされるかを定義します。プライマリは、ColorModel::Rgb 色空間の場合、この特定の色空間で赤、緑、青がどのように見えるかを正確に表す 3 原色と、純白の場所と明るさを表す白色で定義されます。グレースケールの色空間では、単一の白の原色だけが必要です。原色で表現できる色の範囲は色域と呼ばれ、より広い範囲の色を表現できる色空間は広色域色空間とも呼ばれます。

伝達関数またはガンマ曲線は、色空間の各成分がどのように符号化されるかを決定する。人間の知覚は直線的に動作しないため、伝達関数が使用され、人間の目には色が等間隔に見えるようにします。

メンバー型ドキュメント

[since 6.8] enum class QColorSpace::ColorModel

色空間データが使用するカラーモデルを定義します。

定数説明
QColorSpace::ColorModel::Undefined0色モデルなし
QColorSpace::ColorModel::Rgb1赤、緑、青の色を持つRGBカラーモデル。RGBとグレースケールのデータに適用できます。
QColorSpace::ColorModel::Gray2グレースケールカラーモデル。グレースケールデータにのみ適用可能。
QColorSpace::ColorModel::Cmyk3シアン、マゼンタ、イエロー、ブラックの各色で定義されたカラーデータのみを表現できます。実質的には QImage::Format_CMYK32 のみ。注意 Cmyk 色空間はTransformModel::ElementListProcessing になります。

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

enum QColorSpace::NamedColorSpace

定義済みの色空間。

定数説明
QColorSpace::SRgb1デフォルトで Qt が使用する sRGB 色空間です。これは、ほとんどの古典的なモニタがどのように動作するかの近似値であり、ほとんどのソフトウェアとハードウェアがサポートしているモードです。sRGBのICC登録
QColorSpace::SRgbLinear2線形ガンマを持つ sRGB 色空間。ガンマ補正されたブレンドに便利。
QColorSpace::AdobeRgb3Adobe RGB色空間は古典的な広色域色空間で、2.2のガンマを使用。Adobe RGBのICC登録(1998年)
QColorSpace::DisplayP34DCI-P3 の原色を使用し、sRGB のホワイトポイントと伝達関数を持つ色空間。最近の広色域スクリーンでは一般的。DCI-P3のICC登録
QColorSpace::ProPhotoRgb5ROMM RGBとしても知られるプロフォトRGB色空間は、非常に広色域の色空間である。ROMM RGBのICC登録
QColorSpace::Bt2020 (since Qt 6.8)6BT.2020はRec.2020とも呼ばれ、HDRテレビの基本色空間である。BT.2020のICC登録
QColorSpace::Bt2100Pq (since Qt 6.8)7BT.2100(PQ)は、Rec.2100またはHDR10として知られ、Bt2020と同じプライマリを持つHDRエンコーディングだが、Perceptual Quantizerの伝達関数を使用している。BT.2100のICC登録
QColorSpace::Bt2100Hlg (since Qt 6.8)8BT.2100(HLG)は、Bt2020と同じプライマリを持つHDRエンコーディングですが、ハイブリッドログガンマ伝達関数を使用しています。

enum class QColorSpace::Primaries

原色の定義済みセット。

定数説明
QColorSpace::Primaries::Custom0原色が未定義であるか、定義済みの集合に一致しない。
QColorSpace::Primaries::SRgb1sRGBの原色
QColorSpace::Primaries::AdobeRgb2Adobe RGBプライマリ
QColorSpace::Primaries::DciP3D653D65ホワイトポイントを持つDCI-P3プライマリ
QColorSpace::Primaries::ProPhotoRgb4D50ホワイトポイントのProPhoto RGBプライマリ
QColorSpace::Primaries::Bt2020 (since Qt 6.8)5D65ホワイトポイントを持つBT.2020プライマリ

enum class QColorSpace::TransferFunction

あらかじめ定義された伝達関数またはガンマ曲線。

定数説明
QColorSpace::TransferFunction::Custom0カスタムまたはヌル伝達関数
QColorSpace::TransferFunction::Linear1線形伝達関数
QColorSpace::TransferFunction::Gamma2gamma() の値に基づく実ガンマ曲線である伝達関数。
QColorSpace::TransferFunction::SRgb3線形部分とガンマ部分で構成されるsRGB伝達関数
QColorSpace::TransferFunction::ProPhotoRgb4ProPhoto RGB伝達関数(線形部分とガンマ部分で構成される
QColorSpace::TransferFunction::Bt2020 (since Qt 6.8)5BT.2020伝達関数(線形部分とガンマ部分で構成される
QColorSpace::TransferFunction::St2084 (since Qt 6.8)6Perceptual Quantizer(PQ)としても知られるSMPTE ST 2084伝達関数。
QColorSpace::TransferFunction::Hlg (since Qt 6.8)7ハイブリッドログガンマ伝達関数。

[since 6.8] enum class QColorSpace::TransformModel

色空間変換に使用する処理モデルを定義します。

定数説明
QColorSpace::TransformModel::ThreeComponentMatrix0この変換は、プライマリと各色チャンネルの伝達関数のセットから計算された行列で構成されます。これは非常に高速で、すべての定義済み色空間で使用されます。この形式上のどの色空間も可逆的であり,常に有効なソースとターゲットの両方を持ちます.
QColorSpace::TransformModel::ElementListProcessing1変換は、さまざまなことができる処理要素の1つまたは2つのリストで、各リストは、接続色空間への処理または接続色空間からの処理のみを行います。こ れは非常に柔軟ですが、 やや時間がかか り 、 ICC プ ロ フ ァ イ ルを読み込む こ と に よ っ てのみ設定可能です (fromIccProfile() を参照)。2つのリストは別々なので、この形式の色空間は有効なソースになり得ますが、必ずしも有効なターゲットにもなり得ません。このタイプの色空間のプライマリまたは伝達関数を変更すると、空の ThreeComponentMatrix フォームにリセットされます。

この列挙型は Qt 6.8 で導入されました。

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

[noexcept] QColorSpace::QColorSpace()

未定義の無効な色空間を表す新しい色空間オブジェクトを作成する。

QColorSpace::QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)

namedColorSpace を表す新しい色空間オブジェクトを作成します。

[since 6.1] QColorSpace::QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)

transferFunctionTable で記述されたカスタム伝達関数を使用して、プライマリgamut でカスタム色空間を作成します。

テーブルには少なくとも 2 つの値が含まれ、0 から 65535 までの単調に増加する値のリストが含まれている必要があります。

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

QColorSpace::QColorSpace(QColorSpace::Primaries primaries, float gamma)

gamma のガンマ伝達関数を用いて、primaries を原色とするカスタム色空間を作成します。

[explicit, since 6.8] QColorSpace::QColorSpace(QPointF whitePoint, const QList<uint16_t> &transferFunctionTable)

transferFunctionTable で記述されているカスタム伝達関数を使用して、白色点whitePoint を持つカスタムグレイスケール色空間を作成します。

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

QColorSpace::QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

伝達関数transferFunction と、オプションでgamma を用いて、プライマリprimaries でカスタム色空間を作成します。

[explicit, since 6.8] QColorSpace::QColorSpace(QPointF whitePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

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

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

[since 6.1] QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &transferFunctionTable)

whitePoint,redPoint,greenPoint,bluePoint の原色の色度に基づいて、transferFunctionTable で説明されているカスタム伝達関数を使用して、原色を持つカスタム色空間を作成します。

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

QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

whitePoint,redPoint,greenPoint およびbluePoint の原色の色度に基づいて、そして伝達関数transferFunction およびオプションでgamma を用いて、 原色を持つカスタム色空間を作成します。

[since 6.1] QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)

whitePoint,redPoint,greenPoint,bluePoint の原色の色度に基づいて、redTransferFunctionTable,greenTransferFunctionTable,blueTransferFunctionTable で説明されているカスタム伝達関数を使用して、原色を持つカスタム色空間を作成します。

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

[noexcept, since 6.8] QColorSpace::ColorModel QColorSpace::colorModel() const

この色空間が表現できる色モデルを返します。

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

[noexcept, since 6.2] QString QColorSpace::description() const

名前または短い説明を返します。説明文がsetDescription() で与えられていない場合、プロファイルが変更されていなければプロファイルの元の名前が返され、プロファイルが既知の色空間として認識されていれば推測された名前が返され、そうでなければ空の文字列が返されます。

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

setDescription()も参照してください

[static] QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile)

ICC プロファイルiccProfile からQColorSpace を作成します。

注: すべての ICC プロファイルがサポートされているわけではありません。QColorSpace は RGB またはグレーの ICC プロファイルのみをサポートしています。

ICC プロファイルがサポートされていない場合は無効なQColorSpace が返され、iccProfile() を使ってオリジナルの ICC プロファイルを読み込むことができます。

iccProfile()も参照してください

[noexcept] float QColorSpace::gamma() const

TransferFunction::Gamma を持つ色空間のガンマ値,その他の定義済み色空間の近似ガンマ値, あるいは近似ガンマ値がわからない場合は 0.0 を返す。

transferFunction()も参照してください

QByteArray QColorSpace::iccProfile() const

色空間を表す ICC プ ロ フ ァ イ ルを返す。

色空間が ICC プ ロ フ ァ イ ルか ら 生成 さ れてい る と き はそのプ ロ フ ァ イ ルが返 さ れ、 そ う でない と き は生成 さ れます。

注意 : 無効な色空間であっても、 それが ICC プ ロ フ ァ イ ルか ら 生成 さ れた場合には ICC プ ロ フ ァ イ ルを返す こ と があ り ます。

fromIccProfile()も参照

[noexcept] bool QColorSpace::isValid() const

色空間が有効な場合はtrue を返す。TransformModel::ThreeComponentMatrix を持つ色空間は、プライマリと伝達関数の両方が設定されていることを意味し、isValidTarget() を意味します。TransformModel::ElementListProcessing を持つ色空間については、それが有効な変換元を持つことを意味し、 それが有効なターゲット色空間でもあるかどうかを調べるにはisValidTarget() を使います。

isValidTarget()も参照

[noexcept, since 6.8] bool QColorSpace::isValidTarget() const

色空間が有効なターゲット色空間である場合、true を返します。

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

[noexcept] QColorSpace::Primaries QColorSpace::primaries() const

色空間の定義済みのプライマリを返すか、 あるいはどれにもマッチしない場合はprimaries::Custom を返す。

setPrimaries()も参照

[since 6.2] void QColorSpace::setDescription(const QString &description)

色空間の名前または短い説明をdescription に設定します。

空に設定された場合、description() は、代わりにオリジナルまたは推測された説明を返します。

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

description()も参照してください

void QColorSpace::setPrimaries(QColorSpace::Primaries primariesId)

プライマリをprimariesId セットのものに設定する。

primaries()も参照

void QColorSpace::setPrimaries(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint)

whitePoint,redPoint,greenPoint,bluePoint の色度にプライマリーを設定する。

primaries()も参照

[since 6.1] void QColorSpace::setTransferFunction(const QList<uint16_t> &transferFunctionTable)

伝達関数をtransferFunctionTable に設定します。

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

transferFunction() およびwithTransferFunction()も参照してください

void QColorSpace::setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

伝達関数をtransferFunction およびgamma に設定する。

transferFunction(),gamma(),withTransferFunction()も参照のこと

[since 6.1] void QColorSpace::setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)

伝達関数をredTransferFunctionTable,greenTransferFunctionTable,blueTransferFunctionTable に設定します。

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

withTransferFunctions()も参照してください

[since 6.8] void QColorSpace::setWhitePoint(QPointF whitePoint)

この色空間で使用する白色点をwhitePoint に設定します。

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

whitePoint()も参照してください

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

この色空間をother と交換する。この操作は非常に高速で、失敗することはない。

[noexcept] QColorSpace::TransferFunction QColorSpace::transferFunction() const

色空間の定義済み伝達関数を返すか、もしどの伝達関数とも一致しない場合はTransferFunction::Custom を返す。

gamma(),setTransferFunction(),withTransferFunction()も参照

[noexcept, since 6.8] QColorSpace::TransformModel QColorSpace::transformModel() const

この色空間で使用されているトランスフロム処理モデルを返します。

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

QColorTransform QColorSpace::transformationToColorSpace(const QColorSpace &colorspace) const

この色空間からcolorspace への色空間変換を生成して返します。

[since 6.8] QPointF QColorSpace::whitePoint() const

この色空間で使用されている白色点を返します。定義されていない場合は nullQPointF を返します。

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

setWhitePoint()も参照してください

[since 6.1] QColorSpace QColorSpace::withTransferFunction(const QList<uint16_t> &transferFunctionTable) const

この色空間のコピーを返します。ただし、transferFunctionTable で記述されている伝達関数を使用します。

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

transferFunction() およびsetTransferFunction()も参照してください

QColorSpace QColorSpace::withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const

伝達関数transferFunction およびgamma を使用する場合を除き、この色空間のコピーを返す。

transferFunction(),gamma(),setTransferFunction()も参照

[since 6.1] QColorSpace QColorSpace::withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const

redTransferFunctionTable,greenTransferFunctionTable,blueTransferFunctionTable で説明されている転送関数を使用する場合を除き、この色空間のコピーを返します。

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

setTransferFunctions()も参照してください

QVariant QColorSpace::operator QVariant() const

色空間をQVariant で返します。

関連する非会員

bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)

色空間colorSpace1 が色空間colorSpace2 と等しくない場合はtrue を返す。false

QDataStream &operator<<(QDataStream &stream, const QColorSpace &colorSpace)

与えられたcolorSpace を与えられたstream に ICC プロファイルとして書き込みます。

QColorSpace::iccProfile() およびQt データ型のシリアライズも参照してください

bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)

色空間colorSpace1 が色空間colorSpace2 と等しい場合、true を返す。false

QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)

与えられたstream から色空間を読み込み、与えられたcolorSpace に格納します。

QColorSpace::fromIccProfile() およびQt データ型のシリアライズも参照してください

© 2025 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.