void KoColorConversionToAlphaTransformation::transform(const quint8 *src, quint8 *dst, qint32 nPixels) const
{
    qint32 size = srcColorSpace()->pixelSize();

    while (nPixels > 0) {

        *dst = srcColorSpace()->opacityU8(src);

        src += size;
        dst ++;
        nPixels --;

    }
}
void KoColorConversionToAlphaTransformation::transform(const quint8 *src, quint8 *dst, qint32 nPixels) const
{
    quint16 data[4];
    qint32 size = srcColorSpace()->pixelSize();

    while (nPixels > 0) {

        srcColorSpace()->toLabA16(src, (quint8*)data, 1);
        *dst = UINT16_TO_UINT8(UINT16_MULT(data[0], data[3])); // L * A

        src += size;
        dst ++;
        nPixels --;

    }
}
Esempio n. 3
0
void KoCtlColorConversionTransformation::transform(const quint8 *src8, quint8 *dst8, qint32 nPixels) const
{
    dbgPigment << "Transformation from " << srcColorSpace()->id() << " " << srcColorSpace()->profile()->name() << " to " << dstColorSpace()->id() << " " << dstColorSpace()->profile()->name();
    KoCtlBuffer src( reinterpret_cast<char*>(const_cast<quint8*>(src8) ), nPixels * srcColorSpace()->pixelSize());
    KoCtlBuffer dst( reinterpret_cast<char*>(dst8), nPixels * dstColorSpace()->pixelSize());
    const KoColorProfile* ctlp = d->srcIsCTL ? srcColorSpace()->profile() : dstColorSpace()->profile();
    for( std::list<GTLCore::String>::const_iterator cit = d->program->varyings().begin();
         cit != d->program->varyings().end(); ++cit)
    {
        QVariant v = ctlp->property( cit->c_str() );
        dbgPigment << "Setting " << cit->c_str() << " to " << v;
        if( v.type() == QVariant::Double)
        {
            d->program->setVarying( *cit, (float)v.toDouble() );
        } else if( v.type() == QVariant::Int) {
            d->program->setVarying( *cit, v.toInt() );
        } else if( v.type() == QVariant::Bool) {
            d->program->setVarying( *cit, v.toBool() );
        } else {
            dbgPigment << "Unsuitable type";
        }
    }
    d->program->apply(src, dst);
}
Esempio n. 4
0
    virtual void transform(const quint8 *src, quint8 *dst, qint32 numPixels) const {
        const KoColorSpace* srcCs = srcColorSpace();
        const KoColorSpace* dstCs = dstColorSpace();

        quint32 srcPixelsize = srcCs->pixelSize();
        quint32 dstPixelsize = dstCs->pixelSize();

        QColor c;
        while (numPixels > 0) {

            srcCs->toQColor(src, &c);
            dstCs->fromQColor(c, dst);

            src += srcPixelsize;
            dst += dstPixelsize;

            --numPixels;
        }
    }
void KoCopyColorConversionTransformation::transform(const quint8 *srcU8, quint8 *dstU8, qint32 nPixels) const
{
    memcpy(dstU8, srcU8, nPixels * srcColorSpace()->pixelSize());
}