Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qicc.cpp File Reference

(f5cafb6f1ceeb907cc99baccf97d2da6299e5809)

#include "qicc_p.h"
#include <qbuffer.h>
#include <qbytearray.h>
#include <qvarlengtharray.h>
#include <qhash.h>
#include <qdatastream.h>
#include <qendian.h>
#include <qloggingcategory.h>
#include <qstring.h>
#include "qcolorclut_p.h"
#include "qcolormatrix_p.h"
#include "qcolorspace_p.h"
#include "qcolortrc_p.h"
#include <array>
+ Include dependency graph for qicc.cpp:

Go to the source code of this file.

Classes

struct  QIcc::ICCProfileHeader
 
struct  QIcc::TagTableEntry
 
struct  QIcc::GenericTagData
 
struct  QIcc::XYZTagData
 
struct  QIcc::CurvTagData
 
struct  QIcc::ParaTagData
 
struct  QIcc::DescTagData
 
struct  QIcc::MlucTagRecord
 
struct  QIcc::MlucTagData
 
struct  QIcc::Lut8TagData
 
struct  QIcc::Lut16TagData
 
struct  QIcc::mABTagData
 
struct  QIcc::mpetTagData
 
struct  QIcc::Sf32TagData
 
struct  QIcc::MatrixElement
 
struct  QIcc::TagEntry
 

Namespaces

namespace  QIcc
 

Enumerations

enum class  QIcc::ColorSpaceType : quint32 { QIcc::Rgb = IccTag('R', 'G', 'B', ' ') , QIcc::Gray = IccTag('G', 'R', 'A', 'Y') , QIcc::Cmyk = IccTag('C', 'M', 'Y', 'K') }
 
enum class  QIcc::ProfileClass : quint32 {
  QIcc::Input = IccTag('s', 'c', 'n', 'r') , QIcc::Display = IccTag('m', 'n', 't', 'r') , QIcc::Output = IccTag('p', 'r', 't', 'r') , QIcc::ColorSpace = IccTag('s', 'p', 'a', 'c') ,
  QIcc::DeviceLink = IccTag('l', 'i', 'n', 'k') , QIcc::Abstract = IccTag('a', 'b', 's', 't') , QIcc::NamedColor = IccTag('n', 'm', 'c', 'l')
}
 
enum class  QIcc::Tag : quint32 {
  QIcc::acsp = IccTag('a', 'c', 's', 'p') , QIcc::Lab_ = IccTag('L', 'a', 'b', ' ') , QIcc::RGB_ = IccTag('R', 'G', 'B', ' ') , QIcc::XYZ_ = IccTag('X', 'Y', 'Z', ' ') ,
  QIcc::rXYZ = IccTag('r', 'X', 'Y', 'Z') , QIcc::gXYZ = IccTag('g', 'X', 'Y', 'Z') , QIcc::bXYZ = IccTag('b', 'X', 'Y', 'Z') , QIcc::rTRC = IccTag('r', 'T', 'R', 'C') ,
  QIcc::gTRC = IccTag('g', 'T', 'R', 'C') , QIcc::bTRC = IccTag('b', 'T', 'R', 'C') , QIcc::kTRC = IccTag('k', 'T', 'R', 'C') , QIcc::A2B0 = IccTag('A', '2', 'B', '0') ,
  QIcc::A2B1 = IccTag('A', '2', 'B', '1') , QIcc::A2B2 = IccTag('A', '2', 'B', '2') , QIcc::B2A0 = IccTag('B', '2', 'A', '0') , QIcc::B2A1 = IccTag('B', '2', 'A', '1') ,
  QIcc::B2A2 = IccTag('B', '2', 'A', '2') , QIcc::B2D0 = IccTag('B', '2', 'D', '0') , QIcc::B2D1 = IccTag('B', '2', 'D', '1') , QIcc::B2D2 = IccTag('B', '2', 'D', '2') ,
  QIcc::B2D3 = IccTag('B', '2', 'D', '3') , QIcc::D2B0 = IccTag('D', '2', 'B', '0') , QIcc::D2B1 = IccTag('D', '2', 'B', '1') , QIcc::D2B2 = IccTag('D', '2', 'B', '2') ,
  QIcc::D2B3 = IccTag('D', '2', 'B', '3') , QIcc::desc = IccTag('d', 'e', 's', 'c') , QIcc::text = IccTag('t', 'e', 'x', 't') , QIcc::cprt = IccTag('c', 'p', 'r', 't') ,
  QIcc::curv = IccTag('c', 'u', 'r', 'v') , QIcc::para = IccTag('p', 'a', 'r', 'a') , QIcc::wtpt = IccTag('w', 't', 'p', 't') , QIcc::bkpt = IccTag('b', 'k', 'p', 't') ,
  QIcc::mft1 = IccTag('m', 'f', 't', '1') , QIcc::mft2 = IccTag('m', 'f', 't', '2') , QIcc::mluc = IccTag('m', 'l', 'u', 'c') , QIcc::mpet = IccTag('m', 'p', 'e', 't') ,
  QIcc::mAB_ = IccTag('m', 'A', 'B', ' ') , QIcc::mBA_ = IccTag('m', 'B', 'A', ' ') , QIcc::chad = IccTag('c', 'h', 'a', 'd') , QIcc::gamt = IccTag('g', 'a', 'm', 't') ,
  QIcc::sf32 = IccTag('s', 'f', '3', '2') , QIcc::aarg = IccTag('a', 'a', 'r', 'g') , QIcc::aagg = IccTag('a', 'a', 'g', 'g') , QIcc::aabg = IccTag('a', 'a', 'b', 'g')
}
 

Functions

constexpr quint32 QIcc::IccTag (uchar a, uchar b, uchar c, uchar d)
 
size_t qHash (const QIcc::Tag &key, size_t seed=0)
 
static int QIcc::toFixedS1516 (float x)
 
static float QIcc::fromFixedS1516 (int x)
 
static bool QIcc::isValidIccProfile (const ICCProfileHeader &header)
 
static int QIcc::writeColorTrc (QDataStream &stream, const QColorTrc &trc)
 
QByteArray QIcc::toIccProfile (const QColorSpace &space)
 
static bool QIcc::parseXyzData (const QByteArray &data, const TagEntry &tagEntry, QColorVector &colorVector)
 
static quint32 QIcc::parseTRC (const QByteArrayView &tagData, QColorTrc &gamma, QColorTransferTable::Type type=QColorTransferTable::TwoWay)
 
template<typename T >
static void QIcc::parseCLUT (const T *tableData, const float f, QColorCLUT *clut, uchar outputChannels)
 
static constexpr qsizetype QIcc::intPow (qsizetype x, qsizetype exp)
 
template<typename T >
static bool QIcc::parseLutData (const QByteArray &data, const TagEntry &tagEntry, QColorSpacePrivate *colorSpacePrivate, bool isAb)
 
static bool QIcc::parseMabData (const QByteArray &data, const TagEntry &tagEntry, QColorSpacePrivate *colorSpacePrivate, bool isAb)
 
static bool QIcc::parseA2B (const QByteArray &data, const TagEntry &tagEntry, QColorSpacePrivate *privat, bool isAb)
 
static bool QIcc::parseDesc (const QByteArray &data, const TagEntry &tagEntry, QString &descName)
 
static bool QIcc::parseRgbMatrix (const QByteArray &data, const QHash< Tag, TagEntry > &tagIndex, QColorSpacePrivate *colorspaceDPtr)
 
static bool QIcc::parseGrayMatrix (const QByteArray &data, const QHash< Tag, TagEntry > &tagIndex, QColorSpacePrivate *colorspaceDPtr)
 
static bool QIcc::parseChad (const QByteArray &data, const TagEntry &tagEntry, QColorSpacePrivate *colorspaceDPtr)
 
static bool QIcc::parseTRCs (const QByteArray &data, const QHash< Tag, TagEntry > &tagIndex, QColorSpacePrivate *colorspaceDPtr, bool isColorSpaceTypeGray)
 
bool QIcc::fromIccProfile (const QByteArray &data, QColorSpace *colorSpace)
 

Function Documentation

◆ qHash()

size_t qHash ( const QIcc::Tag & key,
size_t seed = 0 )
inline

Definition at line 130 of file qicc.cpp.

References qHash(), and seed.

Referenced by qHash().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: