1#ifndef STANDARD_ENCODER_H
2#define STANDARD_ENCODER_H
5#include "pxcrypt/pxcrypt_codec_export.h"
11#include <qx/core/qx-abstracterror.h>
14#include "pxcrypt/codec/encoder.h"
19class StandardEncoderPrivate;
43 Error encode(QImage& encoded, QByteArrayView payload,
const QImage& medium);
62 static inline const QString PREFIX_STRING = u
"Encoding failed."_s;
63 static inline const QHash<Type, QString> ERR_STRINGS{
65 {MissingPayload, u
"No payload data was provided."_s},
66 {InvalidImage, u
"The medium is invalid."_s},
67 {WontFit, u
"The medium's dimensions are not large enough to fit the payload."_s},
68 {InvalidBpc, u
"Bits-per-channel must be between 1 and 7."_s},
69 {WeaveFailed, u
"There was an error while weaving data."_s}
79 Error(Type t = NoError,
const QString& s = {});
85 QString specific()
const;
86 QString errorString()
const;
89 quint32 deriveValue()
const override;
90 QString derivePrimary()
const override;
91 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 StandardEncoder::Error class is used to report errors during single image encoding.
Definition standard_encoder.h:47
Error(Type t=NoError, const QString &s={})
Definition standard_encoder.cpp:269
Type
Definition standard_encoder.h:51
@ InvalidBpc
Definition standard_encoder.h:56
@ MissingPayload
Definition standard_encoder.h:53
@ NoError
Definition standard_encoder.h:52
@ WontFit
Definition standard_encoder.h:55
@ WeaveFailed
Definition standard_encoder.h:57
@ InvalidImage
Definition standard_encoder.h:54
StandardEncoder()
Definition standard_encoder.cpp:79
QString tag() const
Definition standard_encoder.cpp:118
static quint8 calculateOptimalDensity(const QSize &dim, quint16 tagSize, quint32 payloadSize)
Definition standard_encoder.cpp:105
void setTag(const QByteArray &tag)
Definition standard_encoder.cpp:131
Error encode(QImage &encoded, QByteArrayView payload, const QImage &medium)
Definition standard_encoder.cpp:160
static quint64 calculateMaximumPayload(const QSize &dim, quint16 tagSize, quint8 bpc)
Definition standard_encoder.cpp:89
The PxCrypt namespace is the main namespace through which all functionality of the PxCrypt library is...
Definition decoder.cpp:6