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 */