[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kde-runtime/frameworks] /: Remove webp QImageIO plugin
From: Alex Merry <kde () randomguy3 ! me ! uk>
Date: 2014-02-20 13:24:16
Message-ID: E1WGTbs-000691-AL () scm ! kde ! org
[Download RAW message or body]
Git commit 9c8c7278d16ba422de31b225c9b25bb31f07036c by Alex Merry.
Committed on 20/02/2014 at 13:22.
Pushed by alexmerry into branch 'frameworks'.
Remove webp QImageIO plugin
This is now in kimageformats
M +0 -1 CMakeLists.txt
D +0 -22 kimgio/CMakeLists.txt
D +0 -246 kimgio/webp.cpp
D +0 -7 kimgio/webp.desktop
D +0 -49 kimgio/webp.h
D +0 -7 kimgio/webp.xml
http://commits.kde.org/kde-runtime/9c8c7278d16ba422de31b225c9b25bb31f07036c
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 733f827..45dcde6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -164,7 +164,6 @@ endif ( NOT WINCE )
add_subdirectory(kioslave)
# add_subdirectory(kurifilter-plugins)
# add_subdirectory(phonon)
-# add_subdirectory(kimgio)
# macro_optional_add_subdirectory(renamedlgplugins)
# UI Helper applications
diff --git a/kimgio/CMakeLists.txt b/kimgio/CMakeLists.txt
deleted file mode 100644
index 62ee117..0000000
--- a/kimgio/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-project(runtime_kimgio)
-
-find_package(KDE4 REQUIRED)
-include(KDE4Defaults)
-
-##################################
-# WebP image IO support
-
-find_library(FOUND_WEBP webp)
-if ( FOUND_WEBP )
- set(kimg_webp_LIB_SRCS webp.cpp)
- kde4_add_plugin(kimg_webp ${kimg_webp_LIB_SRCS})
- target_link_libraries(kimg_webp ${KDE4_KDECORE_LIBS} ${QT_QTGUI_LIBRARY} webp)
-
- install(TARGETS kimg_webp DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/imageformats/)
- install(FILES webp.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/)
-
- find_package(SharedMimeInfo REQUIRED)
- install(FILES webp.xml DESTINATION ${XDG_MIME_INSTALL_DIR})
- update_xdg_mimetypes(${XDG_MIME_INSTALL_DIR})
-endif()
-
diff --git a/kimgio/webp.cpp b/kimgio/webp.cpp
deleted file mode 100644
index d51c1ea..0000000
--- a/kimgio/webp.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
-QImageIO Routines to read/write WebP images.
-
-Copyright (c) 2012,2013 Martin Koller <kollix@aon.at>
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) version 3, or any
-later version accepted by the membership of KDE e.V. (or its
-successor approved by the membership of KDE e.V.), which shall
-act as a proxy defined in Section 6 of version 3 of the license.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <stdlib.h>
-
-#include "webp.h"
-#include <webp/decode.h>
-#include <webp/encode.h>
-
-#include <QImage>
-#include <QVariant>
-
-//---------------------------------------------------------------------
-
-WebPHandler::WebPHandler()
- : quality(75)
-{
-}
-
-//---------------------------------------------------------------------
-
-bool WebPHandler::canRead() const
-{
- if (canRead(device())) {
- setFormat("webp");
- return true;
- }
- return false;
-}
-
-//---------------------------------------------------------------------
-
-bool WebPHandler::read(QImage *retImage)
-{
- QByteArray data = device()->readAll();
-
- WebPBitstreamFeatures features;
- VP8StatusCode ret = WebPGetFeatures(reinterpret_cast<const uint8_t*>(data.constData()), \
data.size(), &features);
- if ( ret != VP8_STATUS_OK ) {
- return false;
- }
-
- if ( features.has_alpha ) {
- *retImage = QImage(features.width, features.height, QImage::Format_ARGB32);
- } else {
- *retImage = QImage(features.width, features.height, QImage::Format_RGB32);
- }
-
- if ( retImage->isNull() ) { // out of memory
- return false;
- }
-
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- if ( WebPDecodeARGBInto(reinterpret_cast<const uint8_t*>(data.constData()),
- data.size(), reinterpret_cast<uint8_t*>(retImage->bits()),
- retImage->byteCount(), retImage->bytesPerLine()) == 0 ) {
- return false;
- }
-#else
- if ( WebPDecodeBGRAInto(reinterpret_cast<const uint8_t*>(data.constData()),
- data.size(), reinterpret_cast<uint8_t*>(retImage->bits()),
- retImage->byteCount(), retImage->bytesPerLine()) == 0 ) {
- return false;
- }
-#endif
-
- return true;
-}
-
-//---------------------------------------------------------------------
-
-bool WebPHandler::write(const QImage &image)
-{
- // limitation in WebP
- if ( (image.height() > 16383) || (image.height() == 0) ||
- (image.width() > 16383) || (image.width() == 0) )
- return false;
-
- uint8_t *imageData = new uint8_t[image.width() * image.height() * (3 + \
image.hasAlphaChannel())];
-
- size_t idx = 0;
- for (int y = 0; y < image.height(); y++) {
- const QRgb *scanline = reinterpret_cast<const QRgb*>(image.constScanLine(y));
- for (int x = 0; x < image.width(); x++) {
- imageData[idx++] = qRed(scanline[x]);
- imageData[idx++] = qGreen(scanline[x]);
- imageData[idx++] = qBlue(scanline[x]);
-
- if ( image.hasAlphaChannel() ) {
- imageData[idx++] = qAlpha(scanline[x]);
- }
- }
- }
-
- uint8_t *output = 0;
- size_t size;
- if ( image.hasAlphaChannel() ) {
- size = WebPEncodeRGBA(imageData, image.width(), image.height(), image.width() * 4, \
quality, &output);
- } else {
- size = WebPEncodeRGB(imageData, image.width(), image.height(), image.width() * 4, \
quality, &output);
- }
- delete [] imageData;
-
- if ( size == 0 ) {
- free(output);
- return false;
- }
-
- device()->write(reinterpret_cast<const char*>(output), size);
- free(output);
-
- return true;
-}
-
-//---------------------------------------------------------------------
-
-QByteArray WebPHandler::format() const
-{
- return "webp";
-}
-
-//---------------------------------------------------------------------
-
-bool WebPHandler::supportsOption(ImageOption option) const
-{
- return (option == Quality) || (option == Size);
-}
-
-//---------------------------------------------------------------------
-
-QVariant WebPHandler::option(ImageOption option) const
-{
- switch ( option )
- {
- case Quality:
- return quality;
-
- case Size: {
- QByteArray data = device()->peek(26);
-
- int width = 0, height = 0;
-
- if ( WebPGetInfo(reinterpret_cast<const uint8_t*>(data.constData()),
- data.size(), &width, &height) == 0 )
- return QSize(); // header error
-
- return QSize(width, height);
- }
-
- default: return QVariant();
- }
-}
-
-//---------------------------------------------------------------------
-
-void WebPHandler::setOption(ImageOption option, const QVariant &value)
-{
- if (option == Quality)
- quality = qBound(0, value.toInt(), 100);
-}
-
-//---------------------------------------------------------------------
-
-bool WebPHandler::canRead(QIODevice *device)
-{
- if (!device) {
- qWarning("WebPHandler::canRead() called with no device");
- return false;
- }
-
- // WebP file header: 4 bytes "RIFF", 4 bytes length, 4 bytes "WEBP"
- QByteArray header = device->peek(12);
-
- return (header.size() == 12) && header.startsWith("RIFF") && header.endsWith("WEBP");
-}
-
-//---------------------------------------------------------------------
-//---------------------------------------------------------------------
-
-class WebPPlugin : public QImageIOPlugin
-{
-public:
- QStringList keys() const;
- Capabilities capabilities(QIODevice *device, const QByteArray &format) const;
- QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const;
-};
-
-//---------------------------------------------------------------------
-
-QStringList WebPPlugin::keys() const
-{
- return QStringList() << "webp";
-}
-
-//---------------------------------------------------------------------
-
-QImageIOPlugin::Capabilities WebPPlugin::capabilities(QIODevice *device, const QByteArray \
&format) const
-{
- if (format == "webp")
- return Capabilities(CanRead | CanWrite);
- if (!format.isEmpty())
- return 0;
- if (!device->isOpen())
- return 0;
-
- Capabilities cap;
- if (device->isReadable() && WebPHandler::canRead(device))
- cap |= CanRead;
- if (device->isWritable())
- cap |= CanWrite;
- return cap;
-}
-
-//---------------------------------------------------------------------
-
-QImageIOHandler *WebPPlugin::create(QIODevice *device, const QByteArray &format) const
-{
- QImageIOHandler *handler = new WebPHandler;
- handler->setDevice(device);
- handler->setFormat(format);
- return handler;
-}
-
-//---------------------------------------------------------------------
-
-Q_EXPORT_STATIC_PLUGIN(WebPPlugin)
-Q_EXPORT_PLUGIN2(webp, WebPPlugin)
diff --git a/kimgio/webp.desktop b/kimgio/webp.desktop
deleted file mode 100644
index 3526be5..0000000
--- a/kimgio/webp.desktop
+++ /dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Type=Service
-X-KDE-ServiceTypes=QImageIOPlugins
-X-KDE-ImageFormat=webp
-X-KDE-MimeType=image/x-webp
-X-KDE-Read=true
-X-KDE-Write=true
diff --git a/kimgio/webp.h b/kimgio/webp.h
deleted file mode 100644
index a58d1f1..0000000
--- a/kimgio/webp.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-QImageIO Routines to read/write WebP images.
-
-Copyright (c) 2012,2013 Martin Koller <kollix@aon.at>
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) version 3, or any
-later version accepted by the membership of KDE e.V. (or its
-successor approved by the membership of KDE e.V.), which shall
-act as a proxy defined in Section 6 of version 3 of the license.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef WEBP_H
-#define WEBP_H
-
-#include <QImageIOHandler>
-
-class WebPHandler : public QImageIOHandler
-{
-public:
- WebPHandler();
-
- virtual bool canRead() const;
- virtual bool read(QImage *image);
- virtual bool write(const QImage &image);
-
- virtual QByteArray format() const;
-
- virtual bool supportsOption(ImageOption option) const;
- virtual QVariant option(ImageOption option) const;
- virtual void setOption(ImageOption option, const QVariant &value);
-
- static bool canRead(QIODevice *device);
-
-private:
- int quality;
-};
-
-#endif
diff --git a/kimgio/webp.xml b/kimgio/webp.xml
deleted file mode 100644
index 4246f76..0000000
--- a/kimgio/webp.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0"?>
-<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
- <mime-type type="image/x-webp">
- <comment>WebP image</comment>
- <glob pattern="*.webp"/>
- </mime-type>
-</mime-info>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic