mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-12-26 02:22:50 -05:00
Compare commits
1 Commits
v5.91.0
...
work/rempt
| Author | SHA1 | Date | |
|---|---|---|---|
| b89c2d1b70 |
@ -5,4 +5,3 @@ include:
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android.yml
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml
|
||||
|
||||
@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16)
|
||||
project(KImageFormats)
|
||||
|
||||
include(FeatureSummary)
|
||||
find_package(ECM 5.91.0 NO_MODULE)
|
||||
find_package(ECM 5.90.0 NO_MODULE)
|
||||
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
|
||||
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||
|
||||
|
||||
@ -12,8 +12,6 @@
|
||||
#include <QVariant>
|
||||
#include <QtEndian>
|
||||
|
||||
#include <cstring>
|
||||
|
||||
namespace
|
||||
{
|
||||
struct ChunkHeader {
|
||||
@ -421,7 +419,7 @@ bool ANIHandler::ensureScanned() const
|
||||
}
|
||||
|
||||
// FIXME encoding
|
||||
const QString stringValue = QString::fromLocal8Bit(value.constData(), std::strlen(value.constData()));
|
||||
const QString stringValue = QString::fromLocal8Bit(value);
|
||||
if (chunkId == "INAM") {
|
||||
mutableThis->m_name = stringValue;
|
||||
} else if (chunkId == "IART") {
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
#include <QPainter>
|
||||
#include <QPrinter>
|
||||
#include <QProcess>
|
||||
#include <QStandardPaths>
|
||||
#include <QTemporaryFile>
|
||||
|
||||
// logging category for this framework, default: log stuff >= warning
|
||||
@ -177,12 +176,6 @@ bool EPSHandler::read(QImage *image)
|
||||
|
||||
// create GS command line
|
||||
|
||||
const QString gsExec = QStandardPaths::findExecutable(QStringLiteral("gs"));
|
||||
if (gsExec.isEmpty()) {
|
||||
qCWarning(EPSPLUGIN) << "Couldn't find gs exectuable (from GhostScript) in PATH.";
|
||||
return false;
|
||||
}
|
||||
|
||||
QStringList gsArgs;
|
||||
gsArgs << QLatin1String("-sOutputFile=") + tmpFile.fileName() << QStringLiteral("-q") << QStringLiteral("-g%1x%2").arg(wantedWidth).arg(wantedHeight)
|
||||
<< QStringLiteral("-dSAFER") << QStringLiteral("-dPARANOIDSAFER") << QStringLiteral("-dNOPAUSE") << QStringLiteral("-sDEVICE=ppm")
|
||||
@ -199,7 +192,7 @@ bool EPSHandler::read(QImage *image)
|
||||
|
||||
QProcess converter;
|
||||
converter.setProcessChannelMode(QProcess::ForwardedErrorChannel);
|
||||
converter.start(gsExec, gsArgs);
|
||||
converter.start(QStringLiteral("gs"), gsArgs);
|
||||
if (!converter.waitForStarted(3000)) {
|
||||
qCWarning(EPSPLUGIN) << "Reading EPS files requires gs (from GhostScript)";
|
||||
return false;
|
||||
|
||||
@ -18,6 +18,11 @@
|
||||
|
||||
static constexpr char s_magic[] = "application/x-krita";
|
||||
static constexpr int s_magic_size = sizeof(s_magic) - 1; // -1 to remove the last \0
|
||||
static constexpr int s_krita3_offset = 0x26;
|
||||
static constexpr int s_krita4_offset = 0x2B;
|
||||
static constexpr int s_krita4_64_offset = 0x40;
|
||||
static constexpr int s_krita5_offset = 0x26;
|
||||
static constexpr int s_krita5_64_offset = 0x3A;
|
||||
|
||||
KraHandler::KraHandler()
|
||||
{
|
||||
@ -58,10 +63,8 @@ bool KraHandler::canRead(QIODevice *device)
|
||||
return false;
|
||||
}
|
||||
|
||||
char buff[57];
|
||||
if (device->peek(buff, sizeof(buff)) == sizeof(buff)) {
|
||||
return memcmp(buff + 0x26, s_magic, s_magic_size) == 0;
|
||||
}
|
||||
ByteArray ba = device->peek(43 + s_magic_size);
|
||||
return (ba.contains(s_magic));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -17,6 +17,11 @@
|
||||
|
||||
static constexpr char s_magic[] = "image/openraster";
|
||||
static constexpr int s_magic_size = sizeof(s_magic) - 1; // -1 to remove the last \0
|
||||
static constexpr int s_krita3_offset = 0x26;
|
||||
static constexpr int s_krita4_offset = 0x2B;
|
||||
static constexpr int s_krita4_64_offset = 0x40;
|
||||
static constexpr int s_krita5_offset = 0x26;
|
||||
static constexpr int s_krita5_64_offset = 0x3A;
|
||||
|
||||
OraHandler::OraHandler()
|
||||
{
|
||||
@ -57,10 +62,11 @@ bool OraHandler::canRead(QIODevice *device)
|
||||
return false;
|
||||
}
|
||||
|
||||
char buff[54];
|
||||
if (device->peek(buff, sizeof(buff)) == sizeof(buff)) {
|
||||
return memcmp(buff + 0x26, s_magic, s_magic_size) == 0;
|
||||
}
|
||||
if (device->peek(s_krita3_offset + s_magic_size).contains(s_magic)) return true;
|
||||
if (device->peek(s_krita4_offset + s_magic_size).contains(s_magic)) return true;
|
||||
if (device->peek(s_krita4_64_offset + s_magic_size).contains(s_magic)) return true;
|
||||
if (device->peek(s_krita5_offset + s_magic_size).contains(s_magic)) return true;
|
||||
if (device->peek(s_krita5_64_offset + s_magic_size).contains(s_magic)) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user