7#include <QtGui/qtguiglobal.h>
8#include <QtCore/qfloat16.h>
17class alignas(
sizeof(F) * 4) QRgbaFloat
19 static_assert(std::is_same<F, qfloat16>::value || std::is_same<F,
float>::value);
22#if defined(__AVX512FP16__) && QFLOAT16_IS_NATIVE
27 using FastType =
float;
35 QRgbaFloat fromRgba64(quint16 red, quint16 green, quint16 blue, quint16 alpha)
37 constexpr FastType scale = FastType(1.0f / 65535.0f);
46 QRgbaFloat fromRgba(quint8 red, quint8 green, quint8 blue, quint8 alpha)
48 constexpr FastType scale = FastType(1.0f / 255.0f);
56 QRgbaFloat fromArgb32(uint rgb)
58 return fromRgba(quint8(rgb >> 16), quint8(rgb >> 8), quint8(rgb), quint8(rgb >> 24));
61 constexpr bool isOpaque()
const {
return a >= FastType(1.0f); }
62 constexpr bool isTransparent()
const {
return a <= FastType(0.0f); }
64 constexpr float red()
const {
return r; }
65 constexpr float green()
const {
return g; }
66 constexpr float blue()
const {
return b; }
67 constexpr float alpha()
const {
return a; }
68 void setRed(
float _red) { r = F(_red); }
69 void setGreen(
float _green) { g = F(_green); }
70 void setBlue(
float _blue) { b = F(_blue); }
71 void setAlpha(
float _alpha) { a = F(_alpha); }
73 constexpr float redNormalized()
const {
return clamp01(r); }
74 constexpr float greenNormalized()
const {
return clamp01(g); }
75 constexpr float blueNormalized()
const {
return clamp01(b); }
76 constexpr float alphaNormalized()
const {
return clamp01(a); }
78 constexpr quint8 red8()
const {
return qRound(redNormalized() * FastType(255.0f)); }
79 constexpr quint8 green8()
const {
return qRound(greenNormalized() * FastType(255.0f)); }
80 constexpr quint8 blue8()
const {
return qRound(blueNormalized() * FastType(255.0f)); }
81 constexpr quint8 alpha8()
const {
return qRound(alphaNormalized() * FastType(255.0f)); }
82 constexpr uint toArgb32()
const
84 return uint((alpha8() << 24) | (red8() << 16) | (green8() << 8) | blue8());
87 constexpr quint16 red16()
const {
return qRound(redNormalized() * FastType(65535.0f)); }
88 constexpr quint16 green16()
const {
return qRound(greenNormalized() * FastType(65535.0f)); }
89 constexpr quint16 blue16()
const {
return qRound(blueNormalized() * FastType(65535.0f)); }
90 constexpr quint16 alpha16()
const {
return qRound(alphaNormalized() * FastType(65535.0f)); }
92 constexpr Q_ALWAYS_INLINE QRgbaFloat premultiplied()
const
94 return QRgbaFloat{r * a, g * a, b * a, a};
96 constexpr Q_ALWAYS_INLINE QRgbaFloat unpremultiplied()
const
102 const FastType ia = FastType(1.0f) / FastType(a);
103 return QRgbaFloat{F(r * ia), F(g * ia), F(b * ia), F(a)};
105 constexpr bool operator==(QRgbaFloat f)
const
107 return r == f.r && g == f.g && b == f.b && a == f.a;
109 constexpr bool operator!=(QRgbaFloat f)
const
111 return !(*
this == f);
115 constexpr static FastType clamp01(Type f)
117 return std::clamp(FastType(f), FastType(0.0f), FastType(1.0f));
\inmodule QtCore\reentrant
QString errorString() const
Returns a human readable description of the last error that occurred.
void setDevice(QIODevice *device)
Sets QImageReader's device to device.
int quality() const
Returns the quality setting of the image format.
QString fileName() const
If the currently assigned device is a QFile, or if setFileName() has been called, this function retur...
QImageIOHandler::Transformations transformation() const
QIODevice * device() const
Returns the device currently assigned to QImageReader, or \nullptr if no device has been assigned.
QByteArray subType() const
bool supportsOption(QImageIOHandler::ImageOption option) const
Returns true if the reader supports option; otherwise returns false.
QList< QByteArray > supportedSubTypes() const
QByteArray format() const
Returns the format QImageReader uses for reading images.
void setQuality(int quality)
Sets the quality setting of the image format to quality.
ImageReaderError error() const
Returns the type of error that occurred last.
The QImageWriter class provides a format independent interface for writing images to files or other d...
QImageWriter(const QString &fileName, const QByteArray &format=QByteArray())
Constructs a QImageWriter objects that will write to a file with the name fileName,...
QImageWriter()
Constructs an empty QImageWriter object.
void setCompression(int compression)
This is an image format specific function that set the compression of an image.
bool write(const QImage &image)
Writes the image image to the assigned device or file name.
bool canWrite() const
Returns true if QImageWriter can write the image; i.e., the image format is supported and the assigne...
void setTransformation(QImageIOHandler::Transformations orientation)
QImageWriter(QIODevice *device, const QByteArray &format)
Constructs a QImageWriter object using the device device and image format format.
static QList< QByteArray > supportedMimeTypes()
Returns the list of MIME types supported by QImageWriter.
void setSubType(const QByteArray &type)
void setFileName(const QString &fileName)
Sets the file name of QImageWriter to fileName.
bool optimizedWrite() const
bool progressiveScanWrite() const
static QList< QByteArray > imageFormatsForMimeType(const QByteArray &mimeType)
void setOptimizedWrite(bool optimize)
static QList< QByteArray > supportedImageFormats()
Returns the list of image formats supported by QImageWriter.
int compression() const
Returns the compression of the image.
void setFormat(const QByteArray &format)
Sets the format QImageWriter will use when writing images, to format.
void setProgressiveScanWrite(bool progressive)
void setText(const QString &key, const QString &text)
Sets the image text associated with the key key to text.
\keyword 16-bit Floating Point Support\inmodule QtCore \inheaderfile QFloat16
Combined button and popup list for selecting options.
Q_TRACE_METADATA(qtcore, "ENUM { AUTO, RANGE User ... MaxUser } QEvent::Type;")
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
static QImage rotated90(const QImage &src)
static void copyMetadata(QImage *dst, const QImage &src)
static void copyMetadata(QImageData *dst, const QImageData *src)
static int next_qimage_serial_number()
#define QIMAGE_SANITYCHECK_MEMORY(image)
static void copyPhysicalMetadata(QImageData *dst, const QImageData *src)
static QImage rotated270(const QImage &src)
QMap< QString, QString > qt_getImageText(const QImage &image, const QString &description)
Q_GUI_EXPORT void qt_imageTransform(QImage &src, QImageIOHandler::Transformations orient)
static QImage rotated180(const QImage &src)
static Qt::Orientations toOrientations(QImageIOHandler::Transformations orient)
QMap< QString, QString > qt_getImageTextFromDescription(const QString &description)