File indexing completed on 2024-05-12 04:33:19

0001 /*
0002     SPDX-FileCopyrightText: 2007-2018 Gilles Caulier <caulier dot gilles at gmail dot com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KIPIWRITEIMAGE_H
0008 #define KIPIWRITEIMAGE_H
0009 
0010 // C++ includes
0011 
0012 #include <cstdarg>
0013 #include <cstdio>
0014 #include <cstdlib>
0015 #include <cstring>
0016 #include <iostream>
0017 
0018 // C ANSI includes
0019 
0020 extern "C"
0021 {
0022 #include <jpeglib.h>
0023 #include <tiffio.h>
0024 #include <tiff.h>
0025 #include <png.h>
0026 }
0027 
0028 // Qt includes
0029 
0030 #include <QByteArray>
0031 #include <QString>
0032 
0033 namespace KXMLKipiCmd
0034 {
0035 
0036 class KIPIWriteImage
0037 {
0038 public:
0039 
0040     KIPIWriteImage();
0041     ~KIPIWriteImage();
0042 
0043     void setImageData(const QByteArray& data, uint width, uint height,
0044                       bool  sixteenBit, bool hasAlpha);
0045 
0046     void setCancel(bool* const cancel);
0047     bool cancel() const;
0048 
0049     bool write2JPEG(const QString& destPath);
0050     bool write2PNG(const QString& destPath);
0051     bool write2TIFF(const QString& destPath);
0052     bool write2PPM(const QString& destPath);
0053 
0054 private:
0055 
0056     int bytesDepth() const;
0057 
0058 private:
0059 
0060     class Private;
0061     Private* const d;
0062 };
0063 
0064 }  // namespace KXMLKipiCmd
0065 
0066 #endif /* KIPIWRITEIMAGE_H */