19#include "digikam_config.h"
41#include <QCryptographicHash>
49#include <QImageReader>
50#include <QPaintEngine>
55#include <QScopedPointer>
60#include <klocalizedstring.h>
86#define LANCZOS_TABLE_RES 256
92#define LANCZOS_SUPPORT 2
102#ifdef LANCZOS_DATA_FLOAT
103# define LANCZOS_DATA_TYPE float
104# define LANCZOS_DATA_ONE 1.0
106# define LANCZOS_DATA_TYPE int
107# define LANCZOS_DATA_ONE 4096
116class DIGIKAM_EXPORT DImg::Private :
public QSharedData
125 delete [] lanczos_func;
132 bool sixteenBit =
false;
134 unsigned int width = 0;
135 unsigned int height = 0;
137 unsigned char* data =
nullptr;
155 QMultiMap<int, DPluginDImg*> pluginMap;
156 const auto plugins = DPluginLoader::instance()->allPlugins();
158 for (
DPlugin*
const p : plugins)
163 if (plug && ((prio = plug->
canRead(fileInfo, magic)) > 0))
170 pluginMap.insert(prio, plug);
174 if (pluginMap.isEmpty())
179 return pluginMap.first();
184 QMultiMap<int, DPluginDImg*> pluginMap;
186 if (!format.isNull())
188 const auto plugins = DPluginLoader::instance()->allPlugins();
190 for (
DPlugin*
const p : plugins)
195 if (plug && ((prio = plug->
canWrite(format)) > 0))
197 pluginMap.insert(prio, plug);
202 if (pluginMap.isEmpty())
207 return pluginMap.first();
216 else if (name == QLatin1String(
"JPEG"))
220 else if (name == QLatin1String(
"PNG"))
224 else if (name == QLatin1String(
"TIFF"))
228 else if (name == QLatin1String(
"RAW"))
232 else if (name == QLatin1String(
"JPEG2000"))
236 else if (name == QLatin1String(
"PGF"))
240 else if (name == QLatin1String(
"HEIF"))
253 list << QLatin1String(
"format")
254 << QLatin1String(
"isReadOnly")
255 << QLatin1String(
"originalFilePath")
256 << QLatin1String(
"originalSize")
257 << QLatin1String(
"originalImageHistory")
258 << QLatin1String(
"rawDecodingSettings")
259 << QLatin1String(
"rawDecodingFilterAction")
260 << QLatin1String(
"uniqueHash")
261 << QLatin1String(
"uniqueHashV2")
262 << QLatin1String(
"uniqueHashV3");
Definition dimagehistory.h:39
static DPluginDImg * pluginForFile(const QFileInfo &fileInfo, bool magic)
Definition dimg_p.h:153
static DPluginDImg * pluginForFormat(const QString &format)
Definition dimg_p.h:182
static QStringList fileOriginAttributes()
Definition dimg_p.h:250
static DImg::FORMAT loaderNameToFormat(const QString &name)
Definition dimg_p.h:210
QMap< QString, QString > embeddedText
Definition dimg_p.h:142
~Private()
Definition dimg_p.h:122
DImageHistory imageHistory
Definition dimg_p.h:144
MetaEngineData metaData
Definition dimg_p.h:140
FORMAT
Definition dimg.h:56
IccProfile iccProfile
Definition dimg_p.h:143
QMap< QString, QVariant > attributes
Definition dimg_p.h:141
Definition dplugindimg.h:35
virtual int canWrite(const QString &format) const =0
virtual int canRead(const QFileInfo &fileInfo, bool magic) const =0
Definition iccprofile.h:33
uint64_t ullong
Definition dimg_p.h:110
int64_t llong
Definition dimg_p.h:111
#define LANCZOS_DATA_TYPE
Definition dimg_p.h:106
Definition datefolderview.cpp:34