Commit 5def369f authored by Cyrille Berger's avatar Cyrille Berger

add ycbcr's colorspaces as plugins, add them to the cmake's buildsystem at...

add ycbcr's colorspaces as plugins, add them to the cmake's buildsystem at your own risk and peril, I don't have a workable buildable kde4 environnement, so I can't guarantee anything yet

svn path=/trunk/koffice/; revision=542957
parents 737db829 94afbee1
# Install the desktop file needed to detect the plugin
kde_services_DATA = krita_ycbcr_u16_plugin.desktop
INCLUDES = -I$(srcdir)/../../sdk \
-I$(srcdir)/../../kritacolor/color_strategy/ \
-I$(srcdir)/../../kritacolor/ \
$(KOFFICE_INCLUDES) \
$(all_includes)
lib_LTLIBRARIES = libkrita_ycbcr_u16.la
libkrita_ycbcr_u16_la_LDFLAGS = $(all_libraries)
libkrita_ycbcr_u16_la_LIBADD = ../../kritacolor/libkritacolor.la
# Install this plugin in the KDE modules directory
kde_module_LTLIBRARIES = krita_ycbcr_u16_plugin.la
# Srcs for the plugin
krita_ycbcr_u16_plugin_la_SOURCES = ycbcr_u16_plugin.cc
noinst_HEADERS = ycbcr_u16_plugin.h kis_ycbcr_u16_colorspace.h
krita_ycbcr_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
krita_ycbcr_u16_plugin_la_LIBADD = libkrita_ycbcr_u16.la ../../kritacolor/libkritacolor.la
METASOURCES = AUTO
libkrita_ycbcr_u16_la_SOURCES = kis_ycbcr_u16_colorspace.cc
This diff is collapsed.
/*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef KIS_YCBCR_U16_COLORSPACE_H
#define KIS_YCBCR_U16_COLORSPACE_H
#include <kis_u16_base_colorspace.h>
#include <klocale.h>
#define LUMA_RED 0.2989
#define LUMA_GREEN 0.587
#define LUMA_BLUE 0.114
class KisYCbCrU16ColorSpace : public KisU16BaseColorSpace
{
public:
KisYCbCrU16ColorSpace(KisColorSpaceFactoryRegistry* parent, KisProfile* p);
~KisYCbCrU16ColorSpace();
virtual bool willDegrade(ColorSpaceIndependence )
{
return false;
};
public:
void setPixel(Q_UINT8 *pixel, Q_UINT16 Y, Q_UINT16 Cb, Q_UINT16 Cr, Q_UINT16 alpha) const;
void getPixel(const Q_UINT8 *pixel, Q_UINT16 *Y, Q_UINT16 *Cb, Q_UINT16 *Cr, Q_UINT16 *alpha) const;
virtual void fromQColor(const QColor& c, Q_UINT8 *dst, KisProfile * profile = 0);
virtual void fromQColor(const QColor& c, Q_UINT8 opacity, Q_UINT8 *dst, KisProfile * profile = 0);
virtual void toQColor(const Q_UINT8 *src, QColor *c, KisProfile * profile = 0);
virtual void toQColor(const Q_UINT8 *src, QColor *c, Q_UINT8 *opacity, KisProfile * profile = 0);
virtual Q_UINT8 difference(const Q_UINT8 *src1, const Q_UINT8 *src2);
virtual void mixColors(const Q_UINT8 **colors, const Q_UINT8 *weights, Q_UINT32 nColors, Q_UINT8 *dst) const;
virtual QValueVector<KisChannelInfo *> channels() const;
virtual Q_UINT32 nChannels() const;
virtual Q_UINT32 nColorChannels() const;
virtual Q_UINT32 pixelSize() const;
virtual QImage convertToQImage(const Q_UINT8 *data, Q_INT32 width, Q_INT32 height,
KisProfile * dstProfile,
Q_INT32 renderingIntent,
float exposure = 0.0f);
virtual KisCompositeOpList userVisiblecompositeOps() const;
protected:
virtual void bitBlt(Q_UINT8 *dst,
Q_INT32 dstRowStride,
const Q_UINT8 *src,
Q_INT32 srcRowStride,
const Q_UINT8 *srcAlphaMask,
Q_INT32 maskRowStride,
Q_UINT8 opacity,
Q_INT32 rows,
Q_INT32 cols,
const KisCompositeOp& op);
void compositeOver(Q_UINT8 *dst, Q_INT32 dstRowStride, const Q_UINT8 *src, Q_INT32 srcRowStride, const Q_UINT8 *mask, Q_INT32 maskRowStride, Q_INT32 rows, Q_INT32 columns, Q_UINT8 opacity);
void compositeErase(Q_UINT8 *dst, Q_INT32 dstRowStride, const Q_UINT8 *src, Q_INT32 srcRowStride, const Q_UINT8 *mask, Q_INT32 maskRowStride, Q_INT32 rows, Q_INT32 columns, Q_UINT8 opacity);
private:
#define CLAMP_TO_16BITCHANNEL(a) CLAMP(a, 0, Q_UINT16_MAX)
inline Q_UINT16 computeRed(Q_UINT16 Y, Q_UINT16 /*Cb*/, Q_UINT16 Cr)
{
return (Q_UINT16)( CLAMP_TO_16BITCHANNEL( (Cr - 32768)* (2-2*LUMA_RED) + Y ) );
}
inline Q_UINT16 computeGreen(Q_UINT16 Y, Q_UINT16 Cb, Q_UINT16 Cr)
{
return (Q_UINT16)( CLAMP_TO_16BITCHANNEL( (Y - LUMA_BLUE * computeBlue(Y,Cb,Cr) - LUMA_RED * computeRed(Y,Cb,Cr) ) / LUMA_GREEN ) );
}
inline Q_UINT16 computeBlue(Q_UINT16 Y, Q_UINT16 Cb, Q_UINT16 /*Cr*/)
{
return (Q_UINT16)( CLAMP_TO_16BITCHANNEL( (Cb - 32768)*(2 - 2 * LUMA_BLUE) + Y) );
}
inline Q_UINT16 computeY( Q_UINT16 r, Q_UINT16 b, Q_UINT16 g)
{
return (Q_UINT16)( CLAMP_TO_16BITCHANNEL( LUMA_RED*r + LUMA_GREEN*g + LUMA_BLUE*b ) );
}
inline Q_UINT16 computeCb( Q_UINT16 r, Q_UINT16 b, Q_UINT16 g)
{
return (Q_UINT16)( CLAMP_TO_16BITCHANNEL( (b - computeY(r,g,b))/(2-2*LUMA_BLUE) + 32768) );
}
inline Q_UINT16 computeCr( Q_UINT16 r, Q_UINT16 b, Q_UINT16 g)
{
return (Q_UINT8)( CLAMP_TO_16BITCHANNEL( (r - computeY(r,g,b))/(2-2*LUMA_RED) + 32768) );
}
#undef CLAMP_TO_16BITCHANNEL
static const Q_UINT8 PIXEL_Y = 0;
static const Q_UINT8 PIXEL_Cb = 1;
static const Q_UINT8 PIXEL_Cr = 2;
static const Q_UINT8 PIXEL_ALPHA = 3;
struct Pixel {
Q_UINT16 Y;
Q_UINT16 Cb;
Q_UINT16 Cr;
Q_UINT16 alpha;
};
};
class KisYCbCrU16ColorSpaceFactory : public KisColorSpaceFactory
{
public:
/**
* Krita definition for use in .kra files and internally: unchanging name +
* i18n'able description.
*/
virtual KisID id() const { return KisID("YCbCrAU16", i18n("YCBCR (16-bit integer/channel)")); };
/**
* lcms colorspace type definition.
*/
virtual Q_UINT32 colorSpaceType() { return TYPE_YCbCr_16; };
virtual icColorSpaceSignature colorSpaceSignature() { return icSigYCbCrData; };
virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * parent, KisProfile *p) { return new KisYCbCrU16ColorSpace(parent, p); };
virtual QString defaultProfile() { return ""; };
};
#endif
[Desktop Entry]
Encoding=UTF-8
Name=YCbCr Color Model (16-bit integer)
Comment=Color model for 16-bit integer per channel YCbCr images
ServiceTypes=Krita/ColorSpace
Type=Service
X-KDE-Library=krita_ycbcr_u16_plugin
X-Krita-Version=2
/*
* ycbcr_u16_plugin.cc -- Part of Krita
*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <kinstance.h>
#include <kgenericfactory.h>
#include <kdebug.h>
#include <kis_debug_areas.h>
#include <kis_colorspace_factory_registry.h>
#include <kis_basic_histogram_producers.h>
#include <kis_debug_areas.h>
#include "ycbcr_u16_plugin.h"
#include "kis_ycbcr_u16_colorspace.h"
typedef KGenericFactory<YCbCrU16Plugin> YCbCrU16PluginFactory;
K_EXPORT_COMPONENT_FACTORY( krita_ycbcr_u16_plugin, YCbCrU16PluginFactory( "krita" ) )
YCbCrU16Plugin::YCbCrU16Plugin(QObject *parent, const char *name, const QStringList &)
: KParts::Plugin(parent, name)
{
setInstance(YCbCrU16PluginFactory::instance());
if ( parent->inherits("KisColorSpaceFactoryRegistry") )
{
KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( parent );
KisColorSpace * colorSpaceYCbCrU16 = new KisYCbCrU16ColorSpace(f, 0);
KisColorSpaceFactory * csf = new KisYCbCrU16ColorSpaceFactory();
Q_CHECK_PTR(colorSpaceYCbCrU16);
f->add(csf);
KisHistogramProducerFactoryRegistry::instance()->add(
new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
(KisID("YCbCr16HISTO", i18n("YCbCr16 Histogram")), colorSpaceYCbCrU16) );
}
}
YCbCrU16Plugin::~YCbCrU16Plugin()
{
}
#include "ycbcr_u16_plugin.moc"
/*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef YCBCR_U16_PLUGIN_H_
#define YCBCR_U16_PLUGIN_H_
#include <kparts/plugin.h>
/**
* A plugin wrapper around the YCbCr U16 colour space strategy.
*/
class YCbCrU16Plugin : public KParts::Plugin
{
Q_OBJECT
public:
YCbCrU16Plugin(QObject *parent, const char *name, const QStringList &);
virtual ~YCbCrU16Plugin();
};
#endif // YCBCR_U16_PLUGIN_H_
# Install the desktop file needed to detect the plugin
INCLUDES = -I$(srcdir)/../../sdk \
-I$(srcdir)/../../kritacolor/color_strategy/ \
-I$(srcdir)/../../kritacolor/ \
$(KOFFICE_INCLUDES) \
$(all_includes)
lib_LTLIBRARIES = libkrita_ycbcr_u8.la
libkrita_ycbcr_u8_la_LDFLAGS = $(all_libraries)
libkrita_ycbcr_u8_la_LIBADD = ../../kritacolor/libkritacolor.la
# Install this plugin in the KDE modules directory
kde_module_LTLIBRARIES = krita_ycbcr_u8_plugin.la
# Srcs for the plugin
krita_ycbcr_u8_plugin_la_SOURCES = ycbcr_u8_plugin.cc
noinst_HEADERS = ycbcr_u8_plugin.h kis_ycbcr_u8_colorspace.h
krita_ycbcr_u8_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
krita_ycbcr_u8_plugin_la_LIBADD = libkrita_ycbcr_u8.la ../../kritacolor/libkritacolor.la
METASOURCES = AUTO
libkrita_ycbcr_u8_la_SOURCES = kis_ycbcr_u8_colorspace.cc
kde_services_DATA = krita_ycbcr_u8_plugin.desktop
This diff is collapsed.
/*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef KIS_YCBCR_U8_COLORSPACE_H
#define KIS_YCBCR_U8_COLORSPACE_H
#include <kis_u8_base_colorspace.h>
#include <klocale.h>
#define LUMA_RED 0.2989
#define LUMA_GREEN 0.587
#define LUMA_BLUE 0.114
class KisYCbCrU8ColorSpace : public KisU8BaseColorSpace
{
public:
KisYCbCrU8ColorSpace(KisColorSpaceFactoryRegistry* parent, KisProfile* p);
~KisYCbCrU8ColorSpace();
virtual bool willDegrade(ColorSpaceIndependence )
{
return false;
};
public:
void setPixel(Q_UINT8 *pixel, Q_UINT8 Y, Q_UINT8 Cb, Q_UINT8 Cr, Q_UINT8 alpha) const;
void getPixel(const Q_UINT8 *pixel, Q_UINT8 *Y, Q_UINT8 *Cb, Q_UINT8 *Cr, Q_UINT8 *alpha) const;
virtual void fromQColor(const QColor& c, Q_UINT8 *dst, KisProfile * profile = 0);
virtual void fromQColor(const QColor& c, Q_UINT8 opacity, Q_UINT8 *dst, KisProfile * profile = 0);
virtual void toQColor(const Q_UINT8 *src, QColor *c, KisProfile * profile = 0);
virtual void toQColor(const Q_UINT8 *src, QColor *c, Q_UINT8 *opacity, KisProfile * profile = 0);
virtual Q_UINT8 difference(const Q_UINT8 *src1, const Q_UINT8 *src2);
virtual void mixColors(const Q_UINT8 **colors, const Q_UINT8 *weights, Q_UINT32 nColors, Q_UINT8 *dst) const;
virtual QValueVector<KisChannelInfo *> channels() const;
virtual Q_UINT32 nChannels() const;
virtual Q_UINT32 nColorChannels() const;
virtual Q_UINT32 pixelSize() const;
virtual QImage convertToQImage(const Q_UINT8 *data, Q_INT32 width, Q_INT32 height,
KisProfile * dstProfile,
Q_INT32 renderingIntent,
float exposure = 0.0f);
virtual KisCompositeOpList userVisiblecompositeOps() const;
protected:
virtual void bitBlt(Q_UINT8 *dst,
Q_INT32 dstRowStride,
const Q_UINT8 *src,
Q_INT32 srcRowStride,
const Q_UINT8 *srcAlphaMask,
Q_INT32 maskRowStride,
Q_UINT8 opacity,
Q_INT32 rows,
Q_INT32 cols,
const KisCompositeOp& op);
void compositeOver(Q_UINT8 *dst, Q_INT32 dstRowStride, const Q_UINT8 *src, Q_INT32 srcRowStride, const Q_UINT8 *mask, Q_INT32 maskRowStride, Q_INT32 rows, Q_INT32 columns, Q_UINT8 opacity);
void compositeErase(Q_UINT8 *dst, Q_INT32 dstRowStride, const Q_UINT8 *src, Q_INT32 srcRowStride, const Q_UINT8 *mask, Q_INT32 maskRowStride, Q_INT32 rows, Q_INT32 columns, Q_UINT8 opacity);
void compositeCopy(Q_UINT8 *dst, Q_INT32 dstRowStride, const Q_UINT8 *src, Q_INT32 srcRowStride, const Q_UINT8 *mask, Q_INT32 maskRowStride, Q_INT32 rows, Q_INT32 columns, Q_UINT8 opacity);
private:
#define CLAMP_TO_8BITCHANNEL(a) CLAMP(a, 0, Q_UINT8_MAX)
inline Q_UINT8 computeRed(Q_UINT8 Y, Q_UINT8 /*Cb*/, Q_UINT8 Cr)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( (Cr - 128)* (2-2*LUMA_RED) + Y ) );
}
inline Q_UINT8 computeGreen(Q_UINT8 Y, Q_UINT8 Cb, Q_UINT8 Cr)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( (Y - LUMA_BLUE * computeBlue(Y,Cb,Cr) - LUMA_RED * computeRed(Y,Cb,Cr) ) / LUMA_GREEN ) );
}
inline Q_UINT8 computeBlue(Q_UINT8 Y, Q_UINT8 Cb, Q_UINT8 /*Cr*/)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( (Cb - 128)*(2 - 2 * LUMA_BLUE) + Y) );
}
inline Q_UINT8 computeY( Q_UINT8 r, Q_UINT8 b, Q_UINT8 g)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( LUMA_RED*r + LUMA_GREEN*g + LUMA_BLUE*b ) );
}
inline Q_UINT8 computeCb( Q_UINT8 r, Q_UINT8 b, Q_UINT8 g)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( (b - computeY(r,g,b))/(2-2*LUMA_BLUE) + 128) );
}
inline Q_UINT8 computeCr( Q_UINT8 r, Q_UINT8 b, Q_UINT8 g)
{
return (Q_UINT8)( CLAMP_TO_8BITCHANNEL( (r - computeY(r,g,b))/(2-2*LUMA_RED) + 128) );
}
#undef CLAMP_TO_8BITCHANNEL
static const Q_UINT8 PIXEL_Y = 0;
static const Q_UINT8 PIXEL_Cb = 1;
static const Q_UINT8 PIXEL_Cr = 2;
static const Q_UINT8 PIXEL_ALPHA = 3;
struct Pixel {
Q_UINT8 Y;
Q_UINT8 Cb;
Q_UINT8 Cr;
Q_UINT8 alpha;
};
};
class KisYCbCrU8ColorSpaceFactory : public KisColorSpaceFactory
{
public:
/**
* Krita definition for use in .kra files and internally: unchanging name +
* i18n'able description.
*/
virtual KisID id() const { return KisID("YCbCrAU8", i18n("YCBCR (8-bit integer/channel)")); };
/**
* lcms colorspace type definition.
*/
virtual Q_UINT32 colorSpaceType() { return TYPE_YCbCr_8; };
virtual icColorSpaceSignature colorSpaceSignature() { return icSigYCbCrData; };
virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * parent, KisProfile *p) { return new KisYCbCrU8ColorSpace(parent, p); };
virtual QString defaultProfile() { return ""; };
};
#endif
[Desktop Entry]
Encoding=UTF-8
Name=YCbCr Color Model (8-bit integer)
Comment=Color model for 8-bit integer per channel YCbCr images
ServiceTypes=Krita/ColorSpace
Type=Service
X-KDE-Library=krita_ycbcr_u8_plugin
X-Krita-Version=2
/*
* ycbcr_u8_plugin.cc -- Part of Krita
*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "ycbcr_u8_plugin.h"
#include <kinstance.h>
#include <kgenericfactory.h>
#include <kdebug.h>
#include <kis_debug_areas.h>
#include <kis_colorspace_factory_registry.h>
#include <kis_basic_histogram_producers.h>
#include <kis_debug_areas.h>
#include "kis_ycbcr_u8_colorspace.h"
typedef KGenericFactory<YCbCrU8Plugin> YCbCrU8PluginFactory;
K_EXPORT_COMPONENT_FACTORY( krita_ycbcr_u16_plugin, YCbCrU8PluginFactory( "krita" ) )
YCbCrU8Plugin::YCbCrU8Plugin(QObject *parent, const char *name, const QStringList &)
: KParts::Plugin(parent, name)
{
setInstance(YCbCrU8PluginFactory::instance());
if ( parent->inherits("KisColorSpaceFactoryRegistry") )
{
KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( parent );
KisColorSpace * colorSpaceYCbCrU8 = new KisYCbCrU8ColorSpace(f, 0);
KisColorSpaceFactory * csf = new KisYCbCrU8ColorSpaceFactory();
Q_CHECK_PTR(colorSpaceYCbCrU8);
f->add(csf);
KisHistogramProducerFactoryRegistry::instance()->add(
new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer>
(KisID("YCBR8HISTO", i18n("YCBR8 Histogram")), colorSpaceYCbCrU8) );
}
}
YCbCrU8Plugin::~YCbCrU8Plugin()
{
}
#include "ycbcr_u8_plugin.moc"
/*
* Copyright (c) 2006 Cyrille Berger <cberger@cberger.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef YCBCR_U8_PLUGIN_H_
#define YCBCR_U8_PLUGIN_H_
#include <kparts/plugin.h>
/**
* A plugin wrapper around the YCbCr U8 colour space strategy.
*/
class YCbCrU8Plugin : public KParts::Plugin
{
Q_OBJECT
public:
YCbCrU8Plugin(QObject *parent, const char *name, const QStringList &);
virtual ~YCbCrU8Plugin();
};
#endif // YCBCR_U8_PLUGIN_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment