From c7f2abe551c027a8eddb01dd7445dcf1fb829171 Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland <eirik.aavitsland@qt.io> Date: Wed, 25 Oct 2017 15:15:09 +0200 Subject: [PATCH] Add native Darwin handler for the HEIF (.heic) format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds basic support for still images encoded with the HEIF standard introduced in macOS Sierra and IOS 11. Uses the Core Graphics Image I/O Framework as codec backend. Reuses the helper class from the macjp2 handler. Change-Id: I5f0c7891b189a916cccd2c27eacbac12416ce209 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> --- src/plugins/imageformats/imageformats.pro | 2 + src/plugins/imageformats/macheif/macheif.json | 4 + src/plugins/imageformats/macheif/macheif.pro | 20 +++ src/plugins/imageformats/macheif/main.cpp | 90 ++++++++++++++ .../imageformats/macheif/qmacheifhandler.cpp | 117 ++++++++++++++++++ .../imageformats/macheif/qmacheifhandler.h | 76 ++++++++++++ src/plugins/imageformats/macjp2/macjp2.pro | 8 +- .../{macjp2 => shared}/qiiofhelpers.cpp | 18 +++ .../imageformats/shared/qiiofhelpers.pri | 5 + .../{macjp2 => shared}/qiiofhelpers_p.h | 6 +- tests/auto/auto.pro | 1 + tests/auto/heif/heif.pro | 8 ++ tests/auto/heif/tst_qheif.cpp | 70 +++++++++++ tests/shared/images/heif.qrc | 5 + tests/shared/images/heif/col320x480.heic | Bin 0 -> 29004 bytes 15 files changed, 423 insertions(+), 7 deletions(-) create mode 100644 src/plugins/imageformats/macheif/macheif.json create mode 100644 src/plugins/imageformats/macheif/macheif.pro create mode 100644 src/plugins/imageformats/macheif/main.cpp create mode 100644 src/plugins/imageformats/macheif/qmacheifhandler.cpp create mode 100644 src/plugins/imageformats/macheif/qmacheifhandler.h rename src/plugins/imageformats/{macjp2 => shared}/qiiofhelpers.cpp (91%) create mode 100644 src/plugins/imageformats/shared/qiiofhelpers.pri rename src/plugins/imageformats/{macjp2 => shared}/qiiofhelpers_p.h (95%) create mode 100644 tests/auto/heif/heif.pro create mode 100644 tests/auto/heif/tst_qheif.cpp create mode 100644 tests/shared/images/heif.qrc create mode 100644 tests/shared/images/heif/col320x480.heic diff --git a/src/plugins/imageformats/imageformats.pro b/src/plugins/imageformats/imageformats.pro index 8c79379e..d6c59eeb 100644 --- a/src/plugins/imageformats/imageformats.pro +++ b/src/plugins/imageformats/imageformats.pro @@ -6,6 +6,8 @@ SUBDIRS = \ wbmp \ webp +darwin: SUBDIRS += macheif + qtConfig(regularexpression): \ SUBDIRS += icns diff --git a/src/plugins/imageformats/macheif/macheif.json b/src/plugins/imageformats/macheif/macheif.json new file mode 100644 index 00000000..52b0a89e --- /dev/null +++ b/src/plugins/imageformats/macheif/macheif.json @@ -0,0 +1,4 @@ +{ + "Keys": [ "heic", "heif" ], + "MimeTypes": [ "image/heic", "image/heif" ] +} diff --git a/src/plugins/imageformats/macheif/macheif.pro b/src/plugins/imageformats/macheif/macheif.pro new file mode 100644 index 00000000..38e80872 --- /dev/null +++ b/src/plugins/imageformats/macheif/macheif.pro @@ -0,0 +1,20 @@ +TARGET = qmacheif +PLUGIN_TYPE = imageformats +PLUGIN_CLASS_NAME = QMacHeifPlugin + +LIBS += -framework CoreFoundation -framework CoreGraphics -framework ImageIO + +QT += core-private gui-private + +SOURCES += \ + qmacheifhandler.cpp \ + main.cpp + +HEADERS += \ + qmacheifhandler.h + +include (../shared/qiiofhelpers.pri) + +OTHER_FILES += macheif.json + +load(qt_plugin) diff --git a/src/plugins/imageformats/macheif/main.cpp b/src/plugins/imageformats/macheif/main.cpp new file mode 100644 index 00000000..12d9a4ab --- /dev/null +++ b/src/plugins/imageformats/macheif/main.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the MacHeif plugin in the Qt ImageFormats module. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_NO_IMAGEFORMATPLUGIN + +#include <qmacheifhandler.h> +#include <qiiofhelpers_p.h> + +QT_BEGIN_NAMESPACE + +class QMacHeifPlugin : public QImageIOPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "macheif.json") + +public: + Capabilities capabilities(QIODevice *device, const QByteArray &format) const override; + QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const override; +}; + +QImageIOPlugin::Capabilities QMacHeifPlugin::capabilities(QIODevice *device, const QByteArray &format) const +{ + static const Capabilities sysCaps = QIIOFHelpers::systemCapabilities(QStringLiteral("public.heic")); + + if (!sysCaps) + return 0; + if (format == "heic" || format == "heif") + return sysCaps; + if (!format.isEmpty()) + return 0; + if (!device->isOpen()) + return 0; + + Capabilities cap; + if (sysCaps.testFlag(CanRead) && device->isReadable() && QMacHeifHandler::canRead(device)) + cap |= CanRead; + if (sysCaps.testFlag(CanWrite) && device->isWritable()) + cap |= CanWrite; + return cap; +} + +QImageIOHandler *QMacHeifPlugin::create(QIODevice *device, const QByteArray &format) const +{ + QMacHeifHandler *handler = new QMacHeifHandler(); + handler->setDevice(device); + handler->setFormat(format); + return handler; +} + +QT_END_NAMESPACE + +#include "main.moc" + +#endif // !QT_NO_IMAGEFORMATPLUGIN diff --git a/src/plugins/imageformats/macheif/qmacheifhandler.cpp b/src/plugins/imageformats/macheif/qmacheifhandler.cpp new file mode 100644 index 00000000..7c63e52a --- /dev/null +++ b/src/plugins/imageformats/macheif/qmacheifhandler.cpp @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the MacHeif plugin in the Qt ImageFormats module. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmacheifhandler.h" +#include "qiiofhelpers_p.h" +#include <QVariant> + +QT_BEGIN_NAMESPACE + +class QMacHeifHandlerPrivate +{ + Q_DECLARE_PUBLIC(QMacHeifHandler) + Q_DISABLE_COPY(QMacHeifHandlerPrivate) +public: + QMacHeifHandlerPrivate(QMacHeifHandler *q_ptr) + : writeQuality(-1), q_ptr(q_ptr) + {} + + int writeQuality; + QMacHeifHandler *q_ptr; +}; + + +QMacHeifHandler::QMacHeifHandler() + : d_ptr(new QMacHeifHandlerPrivate(this)) +{ +} + +QMacHeifHandler::~QMacHeifHandler() +{ +} + +bool QMacHeifHandler::canRead(QIODevice *iod) +{ + bool bCanRead = false; + char buf[12]; + if (iod && iod->peek(buf, 12) == 12) { + bCanRead = (!qstrncmp(buf + 4, "ftyp", 4) && + (!qstrncmp(buf + 8, "heic", 4) || + !qstrncmp(buf + 8, "heix", 4) || + !qstrncmp(buf + 8, "mif1", 4))); + } + return bCanRead; +} + +bool QMacHeifHandler::canRead() const +{ + if (canRead(device())) { + setFormat("heic"); + return true; + } + return false; +} + +bool QMacHeifHandler::read(QImage *image) +{ + return QIIOFHelpers::readImage(this, image); +} + +bool QMacHeifHandler::write(const QImage &image) +{ + return QIIOFHelpers::writeImage(this, image, QStringLiteral("public.heic")); +} + +QVariant QMacHeifHandler::option(ImageOption option) const +{ + return QVariant(); +} + +void QMacHeifHandler::setOption(ImageOption option, const QVariant &value) +{ + Q_UNUSED(option) + Q_UNUSED(value) +} + +bool QMacHeifHandler::supportsOption(ImageOption option) const +{ + return false; +} + +QT_END_NAMESPACE diff --git a/src/plugins/imageformats/macheif/qmacheifhandler.h b/src/plugins/imageformats/macheif/qmacheifhandler.h new file mode 100644 index 00000000..6e94a596 --- /dev/null +++ b/src/plugins/imageformats/macheif/qmacheifhandler.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the MacHeif plugin in the Qt ImageFormats module. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMACHEIFHANDLER_H +#define QMACHEIFHANDLER_H + +#include <QScopedPointer> +#include <QImageIOHandler> + +QT_BEGIN_NAMESPACE + +class QImage; +class QByteArray; +class QIODevice; +class QVariant; +class QMacHeifHandlerPrivate; + +class QMacHeifHandler : public QImageIOHandler +{ +public: + QMacHeifHandler(); + ~QMacHeifHandler(); + + bool canRead() const override; + bool read(QImage *image) override; + bool write(const QImage &image) override; + QVariant option(ImageOption option) const override; + void setOption(ImageOption option, const QVariant &value) override; + bool supportsOption(ImageOption option) const override; + + static bool canRead(QIODevice *iod); + +private: + Q_DECLARE_PRIVATE(QMacHeifHandler) + QScopedPointer<QMacHeifHandlerPrivate> d_ptr; +}; + +QT_END_NAMESPACE + +#endif // QMACHEIFHANDLER_P_H diff --git a/src/plugins/imageformats/macjp2/macjp2.pro b/src/plugins/imageformats/macjp2/macjp2.pro index 66aafb45..9a44b696 100644 --- a/src/plugins/imageformats/macjp2/macjp2.pro +++ b/src/plugins/imageformats/macjp2/macjp2.pro @@ -8,12 +8,12 @@ QT += core-private gui-private SOURCES += \ qmacjp2handler.cpp \ - main.cpp \ - qiiofhelpers.cpp + main.cpp HEADERS += \ - qmacjp2handler.h \ - qiiofhelpers_p.h + qmacjp2handler.h + +include (../shared/qiiofhelpers.pri) OTHER_FILES += macjp2.json diff --git a/src/plugins/imageformats/macjp2/qiiofhelpers.cpp b/src/plugins/imageformats/shared/qiiofhelpers.cpp similarity index 91% rename from src/plugins/imageformats/macjp2/qiiofhelpers.cpp rename to src/plugins/imageformats/shared/qiiofhelpers.cpp index c8949323..2cd8b746 100644 --- a/src/plugins/imageformats/macjp2/qiiofhelpers.cpp +++ b/src/plugins/imageformats/shared/qiiofhelpers.cpp @@ -98,6 +98,24 @@ static size_t cbPutBytes(void *info, const void *buffer, size_t count) typedef QImage (*cgImageToQImagePtr)(CGImageRef image); typedef CGImageRef (*qImageToCGImagePtr)(const QImage &image); +QImageIOPlugin::Capabilities QIIOFHelpers::systemCapabilities(const QString &uti) +{ + QImageIOPlugin::Capabilities res; + QCFString cfUti(uti); + + QCFType<CFArrayRef> cfSourceTypes = CGImageSourceCopyTypeIdentifiers(); + CFIndex len = CFArrayGetCount(cfSourceTypes); + if (CFArrayContainsValue(cfSourceTypes, CFRangeMake(0, len), cfUti)) + res |= QImageIOPlugin::CanRead; + + QCFType<CFArrayRef> cfDestTypes = CGImageDestinationCopyTypeIdentifiers(); + len = CFArrayGetCount(cfDestTypes); + if (CFArrayContainsValue(cfDestTypes, CFRangeMake(0, len), cfUti)) + res |= QImageIOPlugin::CanWrite; + + return res; +} + bool QIIOFHelpers::readImage(QImageIOHandler *q_ptr, QImage *out) { static const CGDataProviderSequentialCallbacks cgCallbacks = { 0, &cbGetBytes, &cbSkipForward, &cbRewind, nullptr }; diff --git a/src/plugins/imageformats/shared/qiiofhelpers.pri b/src/plugins/imageformats/shared/qiiofhelpers.pri new file mode 100644 index 00000000..8824281c --- /dev/null +++ b/src/plugins/imageformats/shared/qiiofhelpers.pri @@ -0,0 +1,5 @@ +INCLUDEPATH += $$PWD + +HEADERS += $$PWD/qiiofhelpers_p.h + +SOURCES += $$PWD/qiiofhelpers.cpp diff --git a/src/plugins/imageformats/macjp2/qiiofhelpers_p.h b/src/plugins/imageformats/shared/qiiofhelpers_p.h similarity index 95% rename from src/plugins/imageformats/macjp2/qiiofhelpers_p.h rename to src/plugins/imageformats/shared/qiiofhelpers_p.h index ef5a0228..da517318 100644 --- a/src/plugins/imageformats/macjp2/qiiofhelpers_p.h +++ b/src/plugins/imageformats/shared/qiiofhelpers_p.h @@ -51,10 +51,9 @@ // We mean it. // -QT_BEGIN_NAMESPACE +#include <QImageIOPlugin> -class QImageIOHandler; -class QImage; +QT_BEGIN_NAMESPACE /* Functions to utilize the native ImageIO Framework in OS X and iOS @@ -63,6 +62,7 @@ Functions to utilize the native ImageIO Framework in OS X and iOS class QIIOFHelpers { public: + static QImageIOPlugin::Capabilities systemCapabilities(const QString &uti); static bool readImage(QImageIOHandler *q_ptr, QImage *out); static bool writeImage(QImageIOHandler *q_ptr, const QImage &in, const QString &uti); }; diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index bf0f8e5c..daa1dfbc 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -6,5 +6,6 @@ SUBDIRS = \ icns \ jp2 \ webp \ + heif \ mng \ tiff diff --git a/tests/auto/heif/heif.pro b/tests/auto/heif/heif.pro new file mode 100644 index 00000000..9ef10850 --- /dev/null +++ b/tests/auto/heif/heif.pro @@ -0,0 +1,8 @@ +TARGET = tst_qheif + +QT = core gui testlib +CONFIG -= app_bundle +CONFIG += testcase + +SOURCES += tst_qheif.cpp +RESOURCES += $$PWD/../../shared/images/heif.qrc diff --git a/tests/auto/heif/tst_qheif.cpp b/tests/auto/heif/tst_qheif.cpp new file mode 100644 index 00000000..faf22fa1 --- /dev/null +++ b/tests/auto/heif/tst_qheif.cpp @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the autotests in the Qt ImageFormats module. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtGui/QtGui> + +class tst_qheif: public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void readImage_data(); + void readImage(); +}; + +void tst_qheif::initTestCase() +{ + if (!QImageReader::supportedImageFormats().contains("heic")) + QSKIP("The image format handler is not installed."); +} + +void tst_qheif::readImage_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::addColumn<QSize>("size"); + + QTest::newRow("col") << QString("col320x480.heic") << QSize(320, 480); +} + +void tst_qheif::readImage() +{ + QFETCH(QString, fileName); + QFETCH(QSize, size); + + QString path = QStringLiteral(":/heif/") + fileName; + QImageReader reader(path); + QVERIFY(reader.canRead()); + QImage image = reader.read(); + QVERIFY(!image.isNull()); + QCOMPARE(image.size(), size); +} + +QTEST_MAIN(tst_qheif) +#include "tst_qheif.moc" diff --git a/tests/shared/images/heif.qrc b/tests/shared/images/heif.qrc new file mode 100644 index 00000000..2a41c36b --- /dev/null +++ b/tests/shared/images/heif.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>heif/col320x480.heic</file> + </qresource> +</RCC> diff --git a/tests/shared/images/heif/col320x480.heic b/tests/shared/images/heif/col320x480.heic new file mode 100644 index 0000000000000000000000000000000000000000..6ca3c7b69aebfe956918a43cff49837015ede92f GIT binary patch literal 29004 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 literal 0 HcmV?d00001 -- GitLab