5#include "pxcrypt/pxcrypt_codec_export.h"
11#include <qx/core/qx-abstracterror.h>
14#include "pxcrypt/codec/encoder.h"
19class MultiEncoderPrivate;
43 Error encode(QList<QImage>& encoded, QByteArrayView payload,
const QList<QImage>& mediums);
63 static inline const QString PREFIX_STRING = u
"Encoding failed."_s;
64 static inline const QHash<Type, QString> ERR_STRINGS{
66 {MissingPayload, u
"No payload data was provided."_s},
67 {MissingMediums, u
"No mediums were provided."_s},
68 {InvalidImage, u
"A medium is invalid."_s},
69 {WontFit, u
"A medium's dimensions are not large enough to fit the payload."_s},
70 {InvalidBpc, u
"Bits-per-channel must be between 1 and 7."_s},
71 {WeaveFailed, u
"There was an error while weaving data."_s}
79 qsizetype mImageIndex;
83 Error(Type t = NoError, qsizetype idx = -1,
const QString& s = {});
89 qsizetype imageIndex()
const;
90 QString specific()
const;
91 QString errorString()
const;
94 quint32 deriveValue()
const override;
95 QString derivePrimary()
const override;
96 QString deriveSecondary()
const override;
The Encoder class is a base class from which all PxCrypt encoders derive in order to provide serializ...
Definition encoder.h:17
quint8 bpc() const
Definition encoder.cpp:131
The MultiEncoder::Error class is used to report errors during multi-image encoding.
Definition multi_encoder.h:47
Error(Type t=NoError, qsizetype idx=-1, const QString &s={})
Definition multi_encoder.cpp:608
Type
Definition multi_encoder.h:51
@ MissingMediums
Definition multi_encoder.h:54
@ WeaveFailed
Definition multi_encoder.h:58
@ InvalidImage
Definition multi_encoder.h:55
@ InvalidBpc
Definition multi_encoder.h:57
@ WontFit
Definition multi_encoder.h:56
@ MissingPayload
Definition multi_encoder.h:53
@ NoError
Definition multi_encoder.h:52
QString tag() const
Definition multi_encoder.cpp:437
static quint64 calculateMaximumPayload(const QList< QSize > &dims, quint16 tagSize, quint8 bpc)
Definition multi_encoder.cpp:375
void setTag(const QByteArray &tag)
Definition multi_encoder.cpp:450
Error encode(QList< QImage > &encoded, QByteArrayView payload, const QList< QImage > &mediums)
Definition multi_encoder.cpp:495
static quint8 calculateOptimalDensity(const QList< QSize > &dims, quint16 tagSize, quint32 payloadSize)
Definition multi_encoder.cpp:405
MultiEncoder()
Definition multi_encoder.cpp:365
The PxCrypt namespace is the main namespace through which all functionality of the PxCrypt library is...
Definition decoder.cpp:6