digiKam
Loading...
Searching...
No Matches
jpegutils.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2004-09-29
7 * Description : helper methods for JPEG image format.
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2006-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QString>
22#include <QImage>
23
24// Local includes
25
26#include "digikam_config.h"
27#include "digikam_export.h"
28#include "dmetadata.h"
29#include "metaengine_rotation.h"
30
31namespace Digikam
32{
33
34namespace JPEGUtils
35{
36
38
39class DIGIKAM_EXPORT JpegRotator
40{
41public:
42
48 explicit JpegRotator(const QString& file);
49
54
59 void setCurrentOrientation(MetaEngine::ImageOrientation orientation);
60
65 void setDocumentName(const QString& documentName);
66
71 void setDestinationFile(const QString& dest);
72
78 bool autoExifTransform();
79
84 bool exifTransform(TransformAction action);
85
91 bool exifTransform(const MetaEngineRotation& matrix);
92
93protected:
94
95 QString m_file;
96 QString m_destFile;
99 DMetadata* m_metadata = nullptr;
100 MetaEngine::ImageOrientation m_orientation = MetaEngine::ORIENTATION_UNSPECIFIED;
101
102protected:
103
104 void updateMetadata(const QString& fileName, const MetaEngineRotation& matrix);
105 bool performJpegTransform(TransformAction action, const QString& src, const QString& dest);
106
107private:
108
109 // Disable
110 JpegRotator(const JpegRotator&) = delete;
111 JpegRotator& operator=(const JpegRotator&) = delete;
112};
113
114DIGIKAM_EXPORT bool loadJPEGScaled(QImage& image, const QString& path, int maximumSize);
115DIGIKAM_EXPORT bool jpegConvert(const QString& src,
116 const QString& dest,
117 const QString& documentName,
118 const QString& format=QLatin1String("PNG"));
119DIGIKAM_EXPORT bool isJpegImage(const QString& file);
120DIGIKAM_EXPORT int getJpegQuality(const QString& file);
121
122} // namespace JPEGUtils
123
124} // namespace Digikam
Definition dmetadata.h:46
Definition jpegutils.h:40
QString m_documentName
Definition jpegutils.h:97
QSize m_originalSize
Definition jpegutils.h:98
QString m_destFile
Definition jpegutils.h:96
QString m_file
Definition jpegutils.h:95
Definition metaengine_rotation.h:32
TransformationAction
Definition metaengine_rotation.h:44
ImageOrientation
Definition metaengine.h:86
bool isJpegImage(const QString &file)
Definition jpegutils.cpp:908
int getJpegQuality(const QString &file)
Definition jpegutils.cpp:930
bool jpegConvert(const QString &src, const QString &dest, const QString &documentName, const QString &format)
Definition jpegutils.cpp:799
MetaEngineRotation::TransformationAction TransformAction
Definition jpegutils.h:37
bool loadJPEGScaled(QImage &image, const QString &path, int maximumSize)
Definition jpegutils.cpp:125
Definition datefolderview.cpp:34