mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-07-17 11:44:16 -04:00
Compare commits
10 Commits
v5.47.0
...
v5.52.0-rc
Author | SHA1 | Date | |
---|---|---|---|
beaf20bd4a | |||
8ac949d459 | |||
4c0c6c8d60 | |||
f485719012 | |||
1db1b94657 | |||
98c65a438d | |||
167967a145 | |||
17239a7ea6 | |||
118d262bec | |||
67a84f459d |
@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.0)
|
|||||||
project(KImageFormats)
|
project(KImageFormats)
|
||||||
|
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
find_package(ECM 5.47.0 NO_MODULE)
|
find_package(ECM 5.52.0 NO_MODULE)
|
||||||
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules")
|
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules")
|
||||||
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <QPrinter>
|
#include <QPrinter>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QTemporaryFile>
|
#include <QTemporaryFile>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
// logging category for this framework, default: log stuff >= warning
|
// logging category for this framework, default: log stuff >= warning
|
||||||
Q_LOGGING_CATEGORY(EPSPLUGIN, "epsplugin", QtWarningMsg)
|
Q_LOGGING_CATEGORY(EPSPLUGIN, "epsplugin", QtWarningMsg)
|
||||||
@ -156,7 +157,7 @@ bool EPSHandler::read(QImage *image)
|
|||||||
|
|
||||||
QTemporaryFile tmpFile;
|
QTemporaryFile tmpFile;
|
||||||
if (!tmpFile.open()) {
|
if (!tmpFile.open()) {
|
||||||
qWarning() << "Could not create the temporary file" << tmpFile.fileName();
|
qCWarning(EPSPLUGIN) << "Could not create the temporary file" << tmpFile.fileName();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
qCDebug(EPSPLUGIN) << "temporary file:" << tmpFile.fileName();
|
qCDebug(EPSPLUGIN) << "temporary file:" << tmpFile.fileName();
|
||||||
@ -198,7 +199,7 @@ bool EPSHandler::read(QImage *image)
|
|||||||
converter.setProcessChannelMode(QProcess::ForwardedErrorChannel);
|
converter.setProcessChannelMode(QProcess::ForwardedErrorChannel);
|
||||||
converter.start(QStringLiteral("gs"), gsArgs);
|
converter.start(QStringLiteral("gs"), gsArgs);
|
||||||
if (!converter.waitForStarted(3000)) {
|
if (!converter.waitForStarted(3000)) {
|
||||||
qWarning() << "Reading EPS files requires gs (from GhostScript)";
|
qCWarning(EPSPLUGIN) << "Reading EPS files requires gs (from GhostScript)";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +298,7 @@ bool EPSHandler::write(const QImage &image)
|
|||||||
converter.start(QStringLiteral("gs"), gsArgs);
|
converter.start(QStringLiteral("gs"), gsArgs);
|
||||||
|
|
||||||
if (!converter.waitForStarted(3000)) {
|
if (!converter.waitForStarted(3000)) {
|
||||||
qWarning() << "Creating EPS files requires pdftops (from Poppler) or gs (from GhostScript)";
|
qCWarning(EPSPLUGIN) << "Creating EPS files requires pdftops (from Poppler) or gs (from GhostScript)";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,7 +313,7 @@ bool EPSHandler::write(const QImage &image)
|
|||||||
bool EPSHandler::canRead(QIODevice *device)
|
bool EPSHandler::canRead(QIODevice *device)
|
||||||
{
|
{
|
||||||
if (!device) {
|
if (!device) {
|
||||||
qWarning("EPSHandler::canRead() called with no device");
|
qCWarning(EPSPLUGIN) << "EPSHandler::canRead() called with no device";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,6 +334,15 @@ bool EPSHandler::canRead(QIODevice *device)
|
|||||||
|
|
||||||
QImageIOPlugin::Capabilities EPSPlugin::capabilities(QIODevice *device, const QByteArray &format) const
|
QImageIOPlugin::Capabilities EPSPlugin::capabilities(QIODevice *device, const QByteArray &format) const
|
||||||
{
|
{
|
||||||
|
// prevent bug #397040: when on app shutdown the clipboard content is to be copied to survive end of the app,
|
||||||
|
// QXcbIntegration looks for some QImageIOHandler to apply, querying the capabilities and picking any first.
|
||||||
|
// At that point this plugin no longer has its requirements e.g. to run the external process, so we have to deny.
|
||||||
|
// The capabilities seem to be queried on demand in Qt code and not cached, so it's fine to report based
|
||||||
|
// in current dynamic state
|
||||||
|
if (!QCoreApplication::instance()) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
if (format == "eps" || format == "epsi" || format == "epsf") {
|
if (format == "eps" || format == "epsi" || format == "epsf") {
|
||||||
return Capabilities(CanRead | CanWrite);
|
return Capabilities(CanRead | CanWrite);
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
*
|
*
|
||||||
* This library is distributed under the conditions of the GNU LGPL.
|
* This library is distributed under the conditions of the GNU LGPL.
|
||||||
*/
|
*/
|
||||||
#ifndef KIMG_EPS_H
|
#ifndef KIMG_EPS_P_H
|
||||||
#define KIMG_EPS_H
|
#define KIMG_EPS_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
@ -34,5 +34,5 @@ public:
|
|||||||
|
|
||||||
Q_DECLARE_LOGGING_CATEGORY(EPSPLUGIN)
|
Q_DECLARE_LOGGING_CATEGORY(EPSPLUGIN)
|
||||||
|
|
||||||
#endif // KIMG_EPS_H
|
#endif // KIMG_EPS_P_H
|
||||||
|
|
||||||
|
@ -41,10 +41,10 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool read(char c[], int n) Q_DECL_OVERRIDE;
|
bool read(char c[], int n) override;
|
||||||
Imf::Int64 tellg() Q_DECL_OVERRIDE;
|
Imf::Int64 tellg() override;
|
||||||
void seekg(Imf::Int64 pos) Q_DECL_OVERRIDE;
|
void seekg(Imf::Int64 pos) override;
|
||||||
void clear() Q_DECL_OVERRIDE;
|
void clear() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QIODevice *m_dev;
|
QIODevice *m_dev;
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_EXR_H
|
#ifndef KIMG_EXR_P_H
|
||||||
#define KIMG_EXR_H
|
#define KIMG_EXR_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -34,4 +34,4 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_EXR_H
|
#endif // KIMG_EXR_P_H
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
version 2 of the License, or (at your option) any later version.
|
version 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_HDR_H
|
#ifndef KIMG_HDR_P_H
|
||||||
#define KIMG_HDR_H
|
#define KIMG_HDR_P_H
|
||||||
|
|
||||||
class QImageIO;
|
class QImageIO;
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
version 2 of the License, or (at your option) any later version.
|
version 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_PCX_H
|
#ifndef KIMG_PCX_P_H
|
||||||
#define KIMG_PCX_H
|
#define KIMG_PCX_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -34,4 +34,4 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_PCX_H
|
#endif // KIMG_PCX_P_H
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_PIC_H
|
#ifndef KIMG_PIC_P_H
|
||||||
#define KIMG_PIC_H
|
#define KIMG_PIC_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
@ -199,4 +199,4 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_PIC_H
|
#endif // KIMG_PIC_P_H
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
version 2 of the License, or (at your option) any later version.
|
version 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_PSD_H
|
#ifndef KIMG_PSD_P_H
|
||||||
#define KIMG_PSD_H
|
#define KIMG_PSD_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -33,5 +33,5 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_PSD_H
|
#endif // KIMG_PSD_P_H
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
version 2 of the License, or (at your option) any later version.
|
version 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_RAS_H
|
#ifndef KIMG_RAS_P_H
|
||||||
#define KIMG_RAS_H
|
#define KIMG_RAS_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -34,5 +34,5 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_RAS_H
|
#endif // KIMG_RAS_P_H
|
||||||
|
|
||||||
|
@ -686,8 +686,8 @@ bool RGBHandler::canRead(QIODevice *device)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 oldPos = device->pos();
|
const qint64 oldPos = device->pos();
|
||||||
QByteArray head = device->readLine(64);
|
const QByteArray head = device->readLine(64);
|
||||||
int readBytes = head.size();
|
int readBytes = head.size();
|
||||||
|
|
||||||
if (device->isSequential()) {
|
if (device->isSequential()) {
|
||||||
@ -699,10 +699,7 @@ bool RGBHandler::canRead(QIODevice *device)
|
|||||||
device->seek(oldPos);
|
device->seek(oldPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QRegExp regexp(QLatin1String("^\x01\xda\x01[\x01\x02]"));
|
return head.size() >= 4 && head.startsWith("\x01\xda\x01") && (head[3] == 1 || head[3] == 2);
|
||||||
QString data(QString::fromLocal8Bit(head));
|
|
||||||
|
|
||||||
return data.contains(regexp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
// published by the Free Software Foundation; either version 2 of the
|
// published by the Free Software Foundation; either version 2 of the
|
||||||
// License, or (at your option) any later version.
|
// License, or (at your option) any later version.
|
||||||
|
|
||||||
#ifndef KIMG_RGB_H
|
#ifndef KIMG_RGB_P_H
|
||||||
#define KIMG_RGB_H
|
#define KIMG_RGB_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -34,5 +34,5 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_RGB_H
|
#endif // KIMG_RGB_P_H
|
||||||
|
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMAGEFORMATS_RLE_H
|
#ifndef KIMAGEFORMATS_RLE_P_H
|
||||||
#define KIMAGEFORMATS_RLE_H
|
#define KIMAGEFORMATS_RLE_P_H
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
@ -220,4 +220,4 @@ static inline void encodeRLEData(RLEVariant variant,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // KIMAGEFORMATS_RLE_H
|
#endif // KIMAGEFORMATS_RLE_P_H
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
version 2 of the License, or (at your option) any later version.
|
version 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_TGA_H
|
#ifndef KIMG_TGA_P_H
|
||||||
#define KIMG_TGA_H
|
#define KIMG_TGA_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -34,4 +34,4 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_TGA_H
|
#endif // KIMG_TGA_P_H
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KIMG_XCF_H
|
#ifndef KIMG_XCF_P_H
|
||||||
#define KIMG_XCF_H
|
#define KIMG_XCF_P_H
|
||||||
|
|
||||||
#include <QImageIOPlugin>
|
#include <QImageIOPlugin>
|
||||||
|
|
||||||
@ -46,4 +46,4 @@ public:
|
|||||||
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KIMG_XCF_H
|
#endif // KIMG_XCF_P_H
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
* <http://www.gnu.org/licenses/>.
|
* <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef FORMAT_ENUM_H
|
||||||
|
#define FORMAT_ENUM_H
|
||||||
|
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
|
||||||
// Generated from QImage::Format enum
|
// Generated from QImage::Format enum
|
||||||
@ -71,3 +74,4 @@ QString formatToString(QImage::Format format)
|
|||||||
QLatin1String(">");
|
QLatin1String(">");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Reference in New Issue
Block a user