QColorSpace Class
QColorSpace クラスは色空間を抽象化したものです。詳細...
Header: | #include <QColorSpace> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 継承メンバを含む全メンバ一覧
- QColorSpaceは、絵画クラスの一部です。
パブリック型
(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::Undefined | 0 | 色モデルなし |
QColorSpace::ColorModel::Rgb | 1 | 赤、緑、青の色を持つRGBカラーモデル。RGBとグレースケールのデータに適用できます。 |
QColorSpace::ColorModel::Gray | 2 | グレースケールカラーモデル。グレースケールデータにのみ適用可能。 |
QColorSpace::ColorModel::Cmyk | 3 | シアン、マゼンタ、イエロー、ブラックの各色で定義されたカラーデータのみを表現できます。実質的には QImage::Format_CMYK32 のみ。注意 Cmyk 色空間はTransformModel::ElementListProcessing になります。 |
この enum は Qt 6.8 で導入されました。
enum QColorSpace::NamedColorSpace
定義済みの色空間。
定数 | 値 | 説明 |
---|---|---|
QColorSpace::SRgb | 1 | デフォルトで Qt が使用する sRGB 色空間です。これは、ほとんどの古典的なモニタがどのように動作するかの近似値であり、ほとんどのソフトウェアとハードウェアがサポートしているモードです。sRGBのICC登録。 |
QColorSpace::SRgbLinear | 2 | 線形ガンマを持つ sRGB 色空間。ガンマ補正されたブレンドに便利。 |
QColorSpace::AdobeRgb | 3 | Adobe RGB色空間は古典的な広色域色空間で、2.2のガンマを使用。Adobe RGBのICC登録(1998年) |
QColorSpace::DisplayP3 | 4 | DCI-P3 の原色を使用し、sRGB のホワイトポイントと伝達関数を持つ色空間。最近の広色域スクリーンでは一般的。DCI-P3のICC登録 |
QColorSpace::ProPhotoRgb | 5 | ROMM RGBとしても知られるプロフォトRGB色空間は、非常に広色域の色空間である。ROMM RGBのICC登録 |
QColorSpace::Bt2020 (since Qt 6.8) | 6 | BT.2020はRec.2020とも呼ばれ、HDRテレビの基本色空間である。BT.2020のICC登録 |
QColorSpace::Bt2100Pq (since Qt 6.8) | 7 | BT.2100(PQ)は、Rec.2100またはHDR10として知られ、Bt2020と同じプライマリを持つHDRエンコーディングだが、Perceptual Quantizerの伝達関数を使用している。BT.2100のICC登録 |
QColorSpace::Bt2100Hlg (since Qt 6.8) | 8 | BT.2100(HLG)は、Bt2020と同じプライマリを持つHDRエンコーディングですが、ハイブリッドログガンマ伝達関数を使用しています。 |
enum class QColorSpace::Primaries
事前に定義された原色セット。
定数 | 値 | 説明 |
---|---|---|
QColorSpace::Primaries::Custom | 0 | プライマリが未定義、または定義済みのセットに一致しない。 |
QColorSpace::Primaries::SRgb | 1 | sRGBの原色 |
QColorSpace::Primaries::AdobeRgb | 2 | Adobe RGBプライマリ |
QColorSpace::Primaries::DciP3D65 | 3 | D65ホワイトポイントを持つDCI-P3プライマリ |
QColorSpace::Primaries::ProPhotoRgb | 4 | D50ホワイトポイントのProPhoto RGBプライマリ |
QColorSpace::Primaries::Bt2020 (since Qt 6.8) | 5 | D65ホワイトポイントを持つBT.2020プライマリ |
enum class QColorSpace::TransferFunction
事前定義された伝達関数またはガンマ曲線。
定数 | 値 | 説明 |
---|---|---|
QColorSpace::TransferFunction::Custom | 0 | カスタムまたはヌル伝達関数 |
QColorSpace::TransferFunction::Linear | 1 | 線形伝達関数 |
QColorSpace::TransferFunction::Gamma | 2 | gamma() の値に基づく実ガンマ曲線である伝達関数。 |
QColorSpace::TransferFunction::SRgb | 3 | 線形部分とガンマ部分で構成されるsRGB伝達関数 |
QColorSpace::TransferFunction::ProPhotoRgb | 4 | ProPhoto RGB伝達関数(線形部分とガンマ部分で構成される |
QColorSpace::TransferFunction::Bt2020 (since Qt 6.8) | 5 | BT.2020伝達関数(線形部分とガンマ部分で構成される |
QColorSpace::TransferFunction::St2084 (since Qt 6.8) | 6 | 知覚的量子化器(PQ)としても知られるSMPTE ST 2084伝達関数。 |
QColorSpace::TransferFunction::Hlg (since Qt 6.8) | 7 | ハイブリッドログガンマ伝達関数。 |
[since 6.8]
enum class QColorSpace::TransformModel
色空間変換に使用される処理モデルを定義します。
定数 | 値 | 説明 |
---|---|---|
QColorSpace::TransformModel::ThreeComponentMatrix | 0 | この変換は、各色チャンネルのプライマリと伝達関数のセットから計算された行列で構成されます。これは非常に高速で、すべての定義済み色空間で使用されます。この形式上のどの色空間も可逆的であり,常に有効なソースとターゲットの両方を持ちます. |
QColorSpace::TransformModel::ElementListProcessing | 1 | 変換は、さまざまなことができる処理要素の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 で導入されました。
[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)
colorspacecolorSpace1 が colorspacecolorSpace2 と等 し ければtrue
を返し、 そ う でなければ以下を返します。false
QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)
与えられたstream から色空間を読み込み、それを与えられたcolorSpace に格納します。
QColorSpace::fromIccProfile() およびSerializing Qt Data Typesも参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。