2 * quilldesaturateplugin.cpp
3 * Copyright (C) 2011 Adrian Perez <aperez@igalia.com>
5 * Distributed under terms of the LGPLv2 license.
8 #include "quilldesaturateplugin.h"
10 #define FILTER_NAME_DESATURATE "com.igalia.aperez.desaturate"
12 QuillDesaturatePlugin::QuillDesaturatePlugin():
17 QuillImageFilterImplementation*
18 QuillDesaturatePlugin::create(const QString& name)
20 if (name == FILTER_NAME_DESATURATE) {
21 return new Desaturate;
27 const QStringList QuillDesaturatePlugin::name() const
29 return QStringList() << FILTER_NAME_DESATURATE;
32 Q_EXPORT_PLUGIN2(quilldesaturateplugin, QuillDesaturatePlugin)
35 Desaturate::Desaturate()
39 Desaturate::~Desaturate()
44 Desaturate::apply(const QuillImage& image) const
46 QuillImage result(image);
48 QRgb* endp(reinterpret_cast<QRgb*>(result.bits() + result.numBytes()));
49 for (QRgb *p = reinterpret_cast<QRgb*>(result.bits()); p < endp; p++) {
50 int value = (qRed(*p) + qGreen(*p) + qBlue(*p)) / 3;
51 *p = qRgba(value, value, value, qAlpha(*p));
58 Desaturate::name() const
60 return FILTER_NAME_DESATURATE;