このページでは

QColorSpace Class

QColorSpace クラスは、色空間の抽象化機能を提供します。詳細...

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

パブリック型

(since 6.9) struct PrimaryPoints
(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.9) QColorSpace(const QColorSpace::PrimaryPoints &primaryPoints, 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)
QColorSpace(QColorSpace &&colorSpace)
(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.9) QColorSpace::PrimaryPoints primaryPoints() 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.9) void setPrimaryPoints(const QColorSpace::PrimaryPoints &primaryPoints)
(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
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赤、緑、青の3色からなるRGBカラーモデル。RGBデータおよびグレースケールデータに適用可能です。
QColorSpace::ColorModel::Gray2グレースケールの色モデル。グレースケールデータにのみ適用可能です。
QColorSpace::ColorModel::Cmyk3シアン、マゼンタ、イエロー、およびブラックで定義された色データのみを表現できます。実質的には QImage::Format_CMYK32 のみが有効です。注:CMYK 色空間はTransformModel::ElementListProcessing となります。

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

enum QColorSpace::NamedColorSpace

定義済みの色空間。

定数値説明
QColorSpace::SRgb1Qtがデフォルトで使用するsRGB色空間。これは、ほとんどの従来のモニターの動作をほぼ忠実に再現したものであり、ほとんどのソフトウェアおよびハードウェアがサポートするモードです。sRGBのICCプロファイル。
QColorSpace::SRgbLinear2線形ガンマを持つ sRGB 色空間。ガンマ補正されたブレンドに有用です。
QColorSpace::AdobeRgb3Adobe RGB 色空間は、ガンマ値 2.2 を使用する代表的な広色域色空間です。Adobe RGB (1998) の ICC プロファイル
QColorSpace::DisplayP34DCI-P3の原色を使用するが、白点と伝達関数はsRGBを採用した色空間。現代の広色域ディスプレイで一般的。DCI-P3のICCプロファイル
QColorSpace::ProPhotoRgb5Pro Photo RGB 色空間(ROMM 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とも呼ばれる)は、BT.2020と同じ原色を持つが、知覚量子化(Perceptual Quantizer)転送関数を使用するHDRエンコーディングです。BT.2100のICC登録
QColorSpace::Bt2100Hlg (since Qt 6.8)8BT.2100 (HLG) は、BT.2020 と同じ原色を持つが、ハイブリッド・ログ・ガンマ(HLG)転送関数を使用する 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::ProPhotoRgb4線形部分とガンマ部分から構成されるProPhoto RGB伝達関数
QColorSpace::TransferFunction::Bt2020 (since Qt 6.8)5線形部分とガンマ部分から構成されるBT.2020伝達関数
QColorSpace::TransferFunction::St2084 (since Qt 6.8)6SMPTE ST 2084伝達関数。パーセプチュアル・クオンタイザー(PQ)としても知られる。
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 で導入されました。

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

[constexpr noexcept default] QColorSpace::QColorSpace()

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

QColorSpace::QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)

namedColorSpace を表す新しいカラースペースオブジェクトを作成します。

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

gamut を原色とするカスタム色空間を作成し、transferFunctionTable で記述されたカスタム転送関数を使用します。

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

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

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

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

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

白色点whitePoint を持つカスタムグレースケール色空間を作成し、transferFunctionTable で定義されたカスタム転送関数を使用します。

この関数は 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)

転送関数 `transferFunction ` および(オプションで)`gamma` を使用して、白色点 `whitePoint` を持つカスタムグレースケール色空間を作成します。

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

[since 6.9] QColorSpace::QColorSpace(const QColorSpace::PrimaryPoints &primaryPoints, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

primaryPoints の原色の色度に基づいて、転送関数transferFunction およびオプションでgamma を使用して、原色を持つカスタム色空間を作成します。

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

[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 で導入されました。

[constexpr noexcept default] QColorSpace::QColorSpace(QColorSpace &&colorSpace)

QColorSpace のインスタンスをMoveコンストラクタで生成します。

[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.9] QColorSpace::PrimaryPoints QColorSpace::primaryPoints() const

一次色度を返します。定義されていない場合は、nullポイントを返します。

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

primaries() およびsetPrimaryPoints()も参照してください 。

[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() およびsetPrimaryPoints()も参照してください 。

[since 6.9] void QColorSpace::setPrimaryPoints(const QColorSpace::PrimaryPoints &primaryPoints)

すべてのプライマリをprimaryPoints の色度値に設定します。

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

primaries() およびprimaryPoints()も参照してください 。

[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

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

この関数は 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()も参照してください 。

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 データ型のシリアライズ」も参照してください 。

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