diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:29:37 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:29:37 +0000 |
commit | 2785103a6bd4de55bd26d79e34d0fdd4b329a73a (patch) | |
tree | c2738b1095bfdb263da27bc1391403d829522a14 /krita/colorspaces/gray_u16 | |
parent | f008adb5a77e094eaf6abf3fc0f36958e66896a5 (diff) | |
download | koffice-2785103a6bd4de55bd26d79e34d0fdd4b329a73a.tar.gz koffice-2785103a6bd4de55bd26d79e34d0fdd4b329a73a.zip |
Remove krita* in preparation for name switch from Krita to Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238361 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'krita/colorspaces/gray_u16')
-rw-r--r-- | krita/colorspaces/gray_u16/Makefile.am | 29 | ||||
-rw-r--r-- | krita/colorspaces/gray_u16/gray_u16_plugin.cc | 63 | ||||
-rw-r--r-- | krita/colorspaces/gray_u16/gray_u16_plugin.h | 38 | ||||
-rw-r--r-- | krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc | 658 | ||||
-rw-r--r-- | krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h | 118 | ||||
-rw-r--r-- | krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop | 83 |
6 files changed, 0 insertions, 989 deletions
diff --git a/krita/colorspaces/gray_u16/Makefile.am b/krita/colorspaces/gray_u16/Makefile.am deleted file mode 100644 index 87a94b92..00000000 --- a/krita/colorspaces/gray_u16/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ -# location for the rc file -kde_services_DATA = krita_gray_u16_plugin.desktop - -INCLUDES = -I$(srcdir)/../../sdk \ - -I$(srcdir)/../../kritacolor/color_strategy \ - -I$(srcdir)/../../kritacolor/ \ - $(KOFFICE_INCLUDES) \ - $(all_includes) - -lib_LTLIBRARIES = libkrita_gray_u16.la -libkrita_gray_u16_la_SOURCES = kis_gray_u16_colorspace.cc -libkrita_gray_u16_la_LDFLAGS = $(all_libraries) -libkrita_gray_u16_la_LIBADD = ../../kritacolor/libkritacolor.la - -# Install this plugin in the KDE modules directory -kde_module_LTLIBRARIES = krita_gray_u16_plugin.la - -# Srcs for the plugin -krita_gray_u16_plugin_la_SOURCES = gray_u16_plugin.cc -noinst_HEADERS = gray_u16_plugin.h kis_gray_u16_colorspace.h - -krita_gray_u16_plugin_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -llcms -krita_gray_u16_plugin_la_LIBADD = libkrita_gray_u16.la ../../kritacolor/libkritacolor.la - -krita_gray_u16_plugin_la_METASOURCES = AUTO - - -SUBDIRS = . - diff --git a/krita/colorspaces/gray_u16/gray_u16_plugin.cc b/krita/colorspaces/gray_u16/gray_u16_plugin.cc deleted file mode 100644 index f48ab6d5..00000000 --- a/krita/colorspaces/gray_u16/gray_u16_plugin.cc +++ /dev/null @@ -1,63 +0,0 @@ -/* -* gray_u16_plugin.cc -- Part of Krita -* -* Copyright (c) 2004 Boudewijn Rempt ([email protected]) -* Copyright (c) 2005 Adrian Page <[email protected]> -* -* This program is free software; you can grayistribute 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 "gray_u16_plugin.h" -#include "kis_gray_u16_colorspace.h" - -typedef KGenericFactory<GRAYU16Plugin> GRAYU16PluginFactory; -K_EXPORT_COMPONENT_FACTORY( krita_gray_u16_plugin, GRAYU16PluginFactory( "krita" ) ) - - -GRAYU16Plugin::GRAYU16Plugin(TQObject *tqparent, const char *name, const TQStringList &) - : KParts::Plugin(tqparent, name) -{ - setInstance(GRAYU16PluginFactory::instance()); - - if ( tqparent->inherits("KisColorSpaceFactoryRegistry") ) - { - KisColorSpaceFactoryRegistry * f = dynamic_cast<KisColorSpaceFactoryRegistry*>( tqparent ); - - KisColorSpace * colorSpaceGRAYU16 = new KisGrayU16ColorSpace(f, 0); - KisColorSpaceFactory * csf = new KisGrayU16ColorSpaceFactory(); - Q_CHECK_PTR(colorSpaceGRAYU16); - f->add(csf); - - KisHistogramProducerFactoryRegistry::instance()->add( - new KisBasicHistogramProducerFactory<KisBasicU16HistogramProducer> - (KisID("GRAYA16HISTO", i18n("GRAY/Alpha16")), colorSpaceGRAYU16) ); - } - -} - -GRAYU16Plugin::~GRAYU16Plugin() -{ -} - -#include "gray_u16_plugin.moc" diff --git a/krita/colorspaces/gray_u16/gray_u16_plugin.h b/krita/colorspaces/gray_u16/gray_u16_plugin.h deleted file mode 100644 index 39ef6c2a..00000000 --- a/krita/colorspaces/gray_u16/gray_u16_plugin.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2003 Boudewijn Rempt ([email protected]) - * - * This program is free software; you can grayistribute 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 GRAY_U16_PLUGIN_H_ -#define GRAY_U16_PLUGIN_H_ - -#include <kparts/plugin.h> - -/** - * A plugin wrapper around the GRAY U16 colour space strategy. - */ -class GRAYU16Plugin : public KParts::Plugin -{ - Q_OBJECT - TQ_OBJECT -public: - GRAYU16Plugin(TQObject *tqparent, const char *name, const TQStringList &); - virtual ~GRAYU16Plugin(); - -}; - - -#endif // GRAY_U16_PLUGIN_H_ diff --git a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc b/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc deleted file mode 100644 index 00f3440c..00000000 --- a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc +++ /dev/null @@ -1,658 +0,0 @@ -/* - * Copyright (c) 2002 Patrick Julien <[email protected]> - * Copyright (c) 2005 Boudewijn Rempt <[email protected]> - * - * 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 <config.h> -#include <limits.h> -#include <stdlib.h> -#include LCMS_HEADER - -#include <tqimage.h> - -#include <kdebug.h> -#include <klocale.h> -#include <kglobal.h> - -#include "kis_gray_u16_colorspace.h" -#include "kis_u16_base_colorspace.h" -#include "kis_color_conversions.h" -#include "kis_integer_maths.h" -#include "kis_colorspace_factory_registry.h" - -namespace { - const TQ_INT32 MAX_CHANNEL_GRAY = 1; - const TQ_INT32 MAX_CHANNEL_GRAYA = 2; -} - -KisGrayU16ColorSpace::KisGrayU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) : - KisU16BaseColorSpace(KisID("GRAYA16", i18n("Grayscale (16-bit integer/channel)")), TYPE_GRAYA_16, icSigGrayData, tqparent, p) -{ - m_channels.push_back(new KisChannelInfo(i18n("Gray"), i18n("G"), PIXEL_GRAY * sizeof(TQ_UINT16), KisChannelInfo::COLOR, KisChannelInfo::UINT16, sizeof(TQ_UINT16))); - m_channels.push_back(new KisChannelInfo(i18n("Alpha"), i18n("A"), PIXEL_ALPHA * sizeof(TQ_UINT16), KisChannelInfo::ALPHA, KisChannelInfo::UINT16, sizeof(TQ_UINT16))); - -/* LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); - cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); - cmsFreeGamma(Gamma); -*/ - - m_alphaPos = PIXEL_ALPHA * sizeof(TQ_UINT16); - - init(); -} - -KisGrayU16ColorSpace::~KisGrayU16ColorSpace() -{ -} - -void KisGrayU16ColorSpace::mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const -{ - TQ_UINT32 totalGray = 0, newAlpha = 0; - - while (nColors--) - { - const Pixel *pixel = reinterpret_cast<const Pixel *>(*colors); - - TQ_UINT32 alpha = pixel->alpha; - TQ_UINT32 alphaTimesWeight = UINT16_MULT(alpha, UINT8_TO_UINT16(*weights)); - - totalGray += UINT16_MULT(pixel->gray, alphaTimesWeight); - newAlpha += alphaTimesWeight; - - weights++; - colors++; - } - - Q_ASSERT(newAlpha <= U16_OPACITY_OPAQUE); - - Pixel *dstPixel = reinterpret_cast<Pixel *>(dst); - - dstPixel->alpha = newAlpha; - - if (newAlpha > 0) { - totalGray = UINT16_DIVIDE(totalGray, newAlpha); - } - - dstPixel->gray = totalGray; -} - -void KisGrayU16ColorSpace::convolveColors(TQ_UINT8** colors, TQ_INT32* kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, - TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const -{ - TQ_INT32 totalGray = 0, totalAlpha = 0; - - while (nColors--) - { - const Pixel * pixel = reinterpret_cast<const Pixel *>( *colors ); - - TQ_INT32 weight = *kernelValues; - - if (weight != 0) { - totalGray += pixel->gray * weight; - totalAlpha += pixel->alpha * weight; - } - colors++; - kernelValues++; - } - - Pixel * p = reinterpret_cast< Pixel *>( dst ); - - if (channelFlags & KisChannelInfo::FLAG_COLOR) { - p->gray = CLAMP( ( totalGray / factor) + offset, 0, TQ_UINT16_MAX); - } - if (channelFlags & KisChannelInfo::FLAG_ALPHA) { - p->alpha = CLAMP((totalAlpha/ factor) + offset, 0, TQ_UINT16_MAX); - } -} - - -void KisGrayU16ColorSpace::invertColor(TQ_UINT8 * src, TQ_INT32 nPixels) -{ - TQ_UINT32 psize = pixelSize(); - - while (nPixels--) - { - Pixel * p = reinterpret_cast< Pixel *>( src ); - p->gray = TQ_UINT16_MAX - p->gray; - src += psize; - } -} - - - -TQ_UINT8 KisGrayU16ColorSpace::intensity8(const TQ_UINT8 * src) const -{ - const Pixel * p = reinterpret_cast<const Pixel *>( src ); - return UINT16_TO_UINT8(p->gray); -} - - -TQValueVector<KisChannelInfo *> KisGrayU16ColorSpace::channels() const -{ - return m_channels; -} - -TQ_UINT32 KisGrayU16ColorSpace::nChannels() const -{ - return MAX_CHANNEL_GRAYA; -} - -TQ_UINT32 KisGrayU16ColorSpace::nColorChannels() const -{ - return MAX_CHANNEL_GRAY; -} - -TQ_UINT32 KisGrayU16ColorSpace::pixelSize() const -{ - return MAX_CHANNEL_GRAYA * sizeof(TQ_UINT16); -} - -void KisGrayU16ColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - while (rows > 0) { - - const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart); - TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart); - const TQ_UINT8 *tqmask = tqmaskRowStart; - TQ_INT32 columns = numColumns; - - while (columns > 0) { - - TQ_UINT16 srcAlpha = src[PIXEL_ALPHA]; - - // apply the alphatqmask - if (tqmask != 0) { - TQ_UINT8 U8_tqmask = *tqmask; - - if (U8_tqmask != OPACITY_OPAQUE) { - srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask)); - } - tqmask++; - } - - if (srcAlpha != U16_OPACITY_TRANSPARENT) { - - if (opacity != U16_OPACITY_OPAQUE) { - srcAlpha = UINT16_MULT(srcAlpha, opacity); - } - - if (srcAlpha == U16_OPACITY_OPAQUE) { - memcpy(dst, src, MAX_CHANNEL_GRAYA * sizeof(TQ_UINT16)); - } else { - TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA]; - - TQ_UINT16 srcBlend; - - if (dstAlpha == U16_OPACITY_OPAQUE) { - srcBlend = srcAlpha; - } else { - TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha); - dst[PIXEL_ALPHA] = newAlpha; - - if (newAlpha != 0) { - srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha); - } else { - srcBlend = srcAlpha; - } - } - - if (srcBlend == U16_OPACITY_OPAQUE) { - memcpy(dst, src, MAX_CHANNEL_GRAY * sizeof(TQ_UINT16)); - } else { - dst[PIXEL_GRAY] = UINT16_BLEND(src[PIXEL_GRAY], dst[PIXEL_GRAY], srcBlend); - } - } - } - - columns--; - src += MAX_CHANNEL_GRAYA; - dst += MAX_CHANNEL_GRAYA; - } - - rows--; - srcRowStart += srcRowStride; - dstRowStart += dstRowStride; - if(tqmaskRowStart) { - tqmaskRowStart += tqmaskRowStride; - } - } -} - -#define COMMON_COMPOSITE_OP_PROLOG() \ - while (rows > 0) { \ - \ - const TQ_UINT16 *src = reinterpret_cast<const TQ_UINT16 *>(srcRowStart); \ - TQ_UINT16 *dst = reinterpret_cast<TQ_UINT16 *>(dstRowStart); \ - TQ_INT32 columns = numColumns; \ - const TQ_UINT8 *tqmask = tqmaskRowStart; \ - \ - while (columns > 0) { \ - \ - TQ_UINT16 srcAlpha = src[PIXEL_ALPHA]; \ - TQ_UINT16 dstAlpha = dst[PIXEL_ALPHA]; \ - \ - srcAlpha = TQMIN(srcAlpha, dstAlpha); \ - \ - if (tqmask != 0) { \ - TQ_UINT8 U8_tqmask = *tqmask; \ - \ - if (U8_tqmask != OPACITY_OPAQUE) { \ - srcAlpha = UINT16_MULT(srcAlpha, UINT8_TO_UINT16(U8_tqmask)); \ - } \ - tqmask++; \ - } \ - \ - if (srcAlpha != U16_OPACITY_TRANSPARENT) { \ - \ - if (opacity != U16_OPACITY_OPAQUE) { \ - srcAlpha = UINT16_MULT(srcAlpha, opacity); \ - } \ - \ - TQ_UINT16 srcBlend; \ - \ - if (dstAlpha == U16_OPACITY_OPAQUE) { \ - srcBlend = srcAlpha; \ - } else { \ - TQ_UINT16 newAlpha = dstAlpha + UINT16_MULT(U16_OPACITY_OPAQUE - dstAlpha, srcAlpha); \ - dst[PIXEL_ALPHA] = newAlpha; \ - \ - if (newAlpha != 0) { \ - srcBlend = UINT16_DIVIDE(srcAlpha, newAlpha); \ - } else { \ - srcBlend = srcAlpha; \ - } \ - } - -#define COMMON_COMPOSITE_OP_EPILOG() \ - } \ - \ - columns--; \ - src += MAX_CHANNEL_GRAYA; \ - dst += MAX_CHANNEL_GRAYA; \ - } \ - \ - rows--; \ - srcRowStart += srcRowStride; \ - dstRowStart += dstRowStride; \ - if(tqmaskRowStart) { \ - tqmaskRowStart += tqmaskRowStride; \ - } \ - } - -void KisGrayU16ColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - TQ_UINT16 srcColor = src[PIXEL_GRAY]; - TQ_UINT16 dstColor = dst[PIXEL_GRAY]; - - srcColor = UINT16_MULT(srcColor, dstColor); - - dst[PIXEL_GRAY] = UINT16_BLEND(srcColor, dstColor, srcBlend); - - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = TQMIN((dstColor * (UINT16_MAX + 1u) + (srcColor / 2u)) / (1u + srcColor), UINT16_MAX); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = UINT16_MAX - UINT16_MULT(UINT16_MAX - dstColor, UINT16_MAX - srcColor); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = UINT16_MULT(dstColor, dstColor + 2u * UINT16_MULT(srcColor, UINT16_MAX - dstColor)); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = TQMIN((dstColor * (UINT16_MAX + 1u)) / (UINT16_MAX + 1u - srcColor), UINT16_MAX); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = kMin(((UINT16_MAX - dstColor) * (UINT16_MAX + 1u)) / (srcColor + 1u), UINT16_MAX); - srcColor = kClamp(UINT16_MAX - srcColor, 0u, UINT16_MAX); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = TQMIN(srcColor, dstColor); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - -void KisGrayU16ColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT16 opacity) -{ - COMMON_COMPOSITE_OP_PROLOG(); - - { - for (int channel = 0; channel < MAX_CHANNEL_GRAY; channel++) { - - TQ_UINT16 srcColor = src[channel]; - TQ_UINT16 dstColor = dst[channel]; - - srcColor = TQMAX(srcColor, dstColor); - - TQ_UINT16 newColor = UINT16_BLEND(srcColor, dstColor, srcBlend); - - dst[channel] = newColor; - } - } - - COMMON_COMPOSITE_OP_EPILOG(); -} - - -void KisGrayU16ColorSpace::compositeErase(TQ_UINT8 *dst, - TQ_INT32 dstRowSize, - const TQ_UINT8 *src, - TQ_INT32 srcRowSize, - const TQ_UINT8 *srcAlphaMask, - TQ_INT32 tqmaskRowStride, - TQ_INT32 rows, - TQ_INT32 cols, - TQ_UINT16 /*opacity*/) -{ - while (rows-- > 0) - { - const Pixel *s = reinterpret_cast<const Pixel *>(src); - Pixel *d = reinterpret_cast<Pixel *>(dst); - const TQ_UINT8 *tqmask = srcAlphaMask; - - for (TQ_INT32 i = cols; i > 0; i--, s++, d++) - { - TQ_UINT16 srcAlpha = s->alpha; - - // apply the alphatqmask - if (tqmask != 0) { - TQ_UINT8 U8_tqmask = *tqmask; - - if (U8_tqmask != OPACITY_OPAQUE) { - srcAlpha = UINT16_BLEND(srcAlpha, U16_OPACITY_OPAQUE, UINT8_TO_UINT16(U8_tqmask)); - } - tqmask++; - } - d->alpha = UINT16_MULT(srcAlpha, d->alpha); - } - - dst += dstRowSize; - src += srcRowSize; - if(srcAlphaMask) { - srcAlphaMask += tqmaskRowStride; - } - } -} - -void KisGrayU16ColorSpace::bitBlt(TQ_UINT8 *dst, - TQ_INT32 dstRowStride, - const TQ_UINT8 *src, - TQ_INT32 srcRowStride, - const TQ_UINT8 *tqmask, - TQ_INT32 tqmaskRowStride, - TQ_UINT8 U8_opacity, - TQ_INT32 rows, - TQ_INT32 cols, - const KisCompositeOp& op) -{ - TQ_UINT16 opacity = UINT8_TO_UINT16(U8_opacity); - - switch (op.op()) { - case COMPOSITE_UNDEF: - // Undefined == no composition - break; - case COMPOSITE_OVER: - compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_IN: - //compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - case COMPOSITE_OUT: - //compositeOut(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_ATOP: - //compositeAtop(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_XOR: - //compositeXor(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_PLUS: - //compositePlus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_MINUS: - //compositeMinus(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_ADD: - //compositeAdd(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_SUBTRACT: - //compositeSubtract(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_DIFF: - //compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_MULT: - compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_DIVIDE: - compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_BUMPMAP: - //compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_COPY: - compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, U8_opacity); - break; - case COMPOSITE_COPY_RED: - //compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_COPY_GREEN: - //compositeCopyGreen(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_COPY_BLUE: - //compositeCopyBlue(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_COPY_OPACITY: - //compositeCopyOpacity(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_CLEAR: - //compositeClear(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_DISSOLVE: - //compositeDissolve(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_DISPLACE: - //compositeDisplace(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; -#if 0 - case COMPOSITE_MODULATE: - compositeModulate(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_THRESHOLD: - compositeThreshold(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; -#endif - case COMPOSITE_NO: - // No composition. - break; - case COMPOSITE_DARKEN: - compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_LIGHTEN: - compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_HUE: - //compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_SATURATION: - //compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_VALUE: - //compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_COLOR: - //compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_COLORIZE: - //compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_LUMINIZE: - //compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity); - break; - case COMPOSITE_SCREEN: - compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_OVERLAY: - compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_ERASE: - compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_DODGE: - compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_BURN: - compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity); - break; - case COMPOSITE_ALPHA_DARKEN: - abstractCompositeAlphaDarken<TQ_UINT16, U16Mult, Uint8ToU16, U16OpacityTest, - PIXEL_ALPHA, MAX_CHANNEL_GRAY, MAX_CHANNEL_GRAYA>( - dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, - rows, cols, opacity, U16Mult(), Uint8ToU16(), U16OpacityTest()); - break; - default: - break; - } -} - -KisCompositeOpList KisGrayU16ColorSpace::userVisiblecompositeOps() const -{ - KisCompositeOpList list; - - list.append(KisCompositeOp(COMPOSITE_OVER)); - list.append(KisCompositeOp(COMPOSITE_ALPHA_DARKEN)); - list.append(KisCompositeOp(COMPOSITE_MULT)); - list.append(KisCompositeOp(COMPOSITE_BURN)); - list.append(KisCompositeOp(COMPOSITE_DODGE)); - list.append(KisCompositeOp(COMPOSITE_DIVIDE)); - list.append(KisCompositeOp(COMPOSITE_SCREEN)); - list.append(KisCompositeOp(COMPOSITE_OVERLAY)); - list.append(KisCompositeOp(COMPOSITE_DARKEN)); - list.append(KisCompositeOp(COMPOSITE_LIGHTEN)); - - return list; -} diff --git a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h b/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h deleted file mode 100644 index f5fd6bde..00000000 --- a/krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2002 Patrick Julien <[email protected]> - * Copyright (c) 2005 Boudewijn Rempt <[email protected]> - * - * This program is free software; you can grayistribute 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_STRATEGY_COLORSPACE_GRAY_U16_H_ -#define KIS_STRATEGY_COLORSPACE_GRAY_U16_H_ - -#include <tqcolor.h> - -#include <koffice_export.h> - -#include "kis_global.h" -#include "kis_u16_base_colorspace.h" -#include "kis_integer_maths.h" - - -class KRITATOOL_EXPORT KisGrayU16ColorSpace : public KisU16BaseColorSpace { -public: - - struct Pixel { - TQ_UINT16 gray; - TQ_UINT16 alpha; - }; - - virtual bool willDegrade(ColorSpaceIndependence independence) - { - if (independence == TO_RGBA8) - return true; - else - return false; - }; - - -public: - KisGrayU16ColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p); - virtual ~KisGrayU16ColorSpace(); - -public: - virtual void mixColors(const TQ_UINT8 **colors, const TQ_UINT8 *weights, TQ_UINT32 nColors, TQ_UINT8 *dst) const; - virtual void invertColor(TQ_UINT8 * src, TQ_INT32 nPixels); - virtual void convolveColors(TQ_UINT8** colors, TQ_INT32 * kernelValues, KisChannelInfo::enumChannelFlags channelFlags, TQ_UINT8 *dst, TQ_INT32 factor, TQ_INT32 offset, TQ_INT32 nColors) const; - virtual TQ_UINT8 intensity8(const TQ_UINT8 * src) const; - - virtual TQValueVector<KisChannelInfo *> channels() const; - virtual TQ_UINT32 nChannels() const; - virtual TQ_UINT32 nColorChannels() const; - virtual TQ_UINT32 pixelSize() const; - - virtual KisCompositeOpList userVisiblecompositeOps() const; - - -protected: - - virtual void bitBlt(TQ_UINT8 *dst, - TQ_INT32 dstRowStride, - const TQ_UINT8 *src, - TQ_INT32 srcRowStride, - const TQ_UINT8 *srcAlphaMask, - TQ_INT32 tqmaskRowStride, - TQ_UINT8 opacity, - TQ_INT32 rows, - TQ_INT32 cols, - const KisCompositeOp& op); - - void compositeOver(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeMultiply(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeDivide(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeScreen(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeOverlay(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeDodge(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeBurn(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeDarken(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeLighten(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - void compositeErase(TQ_UINT8 *dst, TQ_INT32 dstRowStride, const TQ_UINT8 *src, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmask, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 columns, TQ_UINT16 opacity); - -private: - friend class KisGrayU16ColorSpaceTester; - - static const TQ_UINT8 PIXEL_GRAY = 0; - static const TQ_UINT8 PIXEL_ALPHA = 1; -}; - -class KisGrayU16ColorSpaceFactory : public KisColorSpaceFactory -{ -public: - /** - * Krita definition for use in .kra files and internally: unchanging name + - * i18n'able description. - */ - virtual KisID id() const { return KisID("GRAYA16", i18n("Grayscale (16-bit integer/channel)")); }; - - /** - * lcms colorspace type definition. - */ - virtual TQ_UINT32 colorSpaceType() { return TYPE_GRAY_16; }; - - virtual icColorSpaceSignature colorSpaceSignature() { return icSigGrayData; }; - - virtual KisColorSpace *createColorSpace(KisColorSpaceFactoryRegistry * tqparent, KisProfile *p) { return new KisGrayU16ColorSpace(tqparent, p); }; - - virtual TQString defaultProfile() { return "gray built-in - (lcms internal)"; }; -}; - -#endif // KIS_STRATEGY_COLORSPACE_GRAY_U16_H_ diff --git a/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop b/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop deleted file mode 100644 index 8ba4e38e..00000000 --- a/krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop +++ /dev/null @@ -1,83 +0,0 @@ -[Desktop Entry] -Name=Grayscale Color Model (16-bit integer) -Name[bg]=Цветови модел сива гама (16 бита) -Name[ca]=Model de color d'escala de grisos (enters de 16 bits) -Name[cy]=Model Lliw Graddlwyd (cyfanrif 16-did) -Name[da]=Farvemodel med gråskala (16-bit heltal) -Name[de]=Graustufen-Farbmodell (16-bit Ganzzahl) -Name[el]=Χρωματικό μοντέλο διαβαθμίσεων του γκρι (16 bit ακέραιοι) -Name[en_GB]=Greyscale Colour Model (16-bit integer) -Name[eo]=Grizoskala kolormodelo (16-bita entjero) -Name[es]=Modelo de color de escala de grises (entero de 16 bits) -Name[et]=Halltooni värvimudel (16-bitine) -Name[fa]=مدل رنگ مقیاس خاکستری )عدد صحیح ۱۶ بیتی( -Name[fi]=Harmaasävyvärimalli (16-bittinen) -Name[fr]=Modèle de couleurs en nivaux de gris (entiers 16 bits) -Name[fy]=Kleurmodel foar griiswearden (16-bit yntegers) -Name[gl]=Modelo de Cores en Escala de Gris (inteiro de 16-bit) -Name[he]=מודל צבעים של גווני אפור )16 סיביות( -Name[hu]=Szürkeárnyalatos színmodell (16 bites egész) -Name[is]=Gráskala litategund (16-bita heiltala) -Name[it]=Modello di colore a scala di grigio (intero a 16 bit) -Name[ja]=グレースケール カラーモデル (16 ビット整数) -Name[km]=គំរូពណ៌មាត្រដ្ឋានប្រផេះ (ចំនួនគត់ ១៦ ប៊ីត) -Name[nb]=Fargemodell med gråtoner (16-bit heltall) -Name[nds]=Griestöön-Klöörmodell (16-Bit Heeltall) -Name[ne]=ग्रेस्केल रङ मोडेल (१६-बिट इन्टिजर) -Name[nl]=Kleurmodel voor grijswaarden (16-bit integers) -Name[pl]=Skala szarości (16-bitowa liczba całkowita) -Name[pt]=Modelo de Cor de Tons de Cinzento (inteiros de 16 bits) -Name[pt_BR]=Modelo de Cor de Tons de Cinza (inteiros de 16 bits) -Name[ru]=Градации серого (целое 16-бит) -Name[se]=Ránesivdnemálle (16-bihttá lohku) -Name[sk]=Čiernobiely/šedý model farieb (16-bitové čísla) -Name[sl]=Sivinski barvni model (16-bitno celo število) -Name[sr]=Модел боја у сивим нијансама (16-битно целобројно) -Name[sr@Latn]=Model boja u sivim nijansama (16-bitno celobrojno) -Name[sv]=Färgmodell med gråskala (16-bitars heltal) -Name[uk]=Модель кольору відтінків сірого (16-бітне ціле число) -Name[uz]=Kul rang usuli (16-bit butun) -Name[uz@cyrillic]=Кул ранг усули (16-бит бутун) -Name[zh_CN]=灰度色彩模型(16 位整数) -Name[zh_TW]=灰階色彩模型 (16-bit 整數) -Comment=Color model for 16-bit integer per channel Grayscale images -Comment[bg]=Цветови модел за 16 битови изображения в сива гама -Comment[ca]=Model de color d'enters de 16 bits per a canal d'imatges d'escala de grisos -Comment[cy]=Model lliw ar gyfer delweddau Graddlwyd â chyfanrif 16-did/sianel -Comment[da]=Farvemodel for 16-bit heltal pr kanal Gråskala-billeder -Comment[de]=Farbmodell für 16-bit Ganzzahl pro Kanal Graustufen-Bilder -Comment[el]=Χρωματικό μοντέλο για 16-bit ακεραίους ανά κανάλι με διαβαθμίσεις του γκρι εικόνες -Comment[en_GB]=Colour model for 16-bit integer per channel Greyscale images -Comment[es]=Modelo de color de entero de 16 bits por canal para imágenes de escala de grises -Comment[et]=16-bitiste täisarvuliste kanalitega halltoonis piltide värvimudel -Comment[fa]=مدل رنگ برای عدد صحیح ۱۶ بیتی در هر تصویر مقیاس خاکستری مجرا -Comment[fi]=Värimalli 16-bittisille harmaasävykuville -Comment[fr]=Modèle de couleurs pour des images en nivaux de gris à 16 bits/plage -Comment[fy]=Kleurmodel foar16-bit/kanaal griiswearde-ôfbeeldings -Comment[gl]=Modelo de cor para imaxes en escala de grises de 16-bit por canal -Comment[he]=מודל צבעים עבור תמונות של 16 סיביות בגווני אפור -Comment[hu]=Színmodell 16 bit/csatorna szürkeárnyalatos képekhez -Comment[is]=Litategund fyrir 16-bita heiltölu á rás gráskala myndir -Comment[it]=Modello di colore per immagini in scala di grigio a canale di 16 bit -Comment[ja]=16 ビット整数/チャンネル グレースケール画像のためのカラーモデル -Comment[km]=គំរូពណ៌សម្រាប់រូបភាពមាត្រដ្ឋានប្រផេះចំនួនគត់ ១៦ ប៊ីតក្នុងមួយឆានែល -Comment[nb]=Fargemodell for gråtonebilde med 16 bit per kanal -Comment[nds]=Klöörmodell för Griestöön-Biller mit 16-Bit Heeltall per Kanaal -Comment[ne]=प्रति च्यानल ग्रेस्केल छविहरूका १६-बिट च्यानलका लागि रङ मोडेल -Comment[nl]=Kleurmodel voor 16-bit/kanaal grijswaarde-afbeeldingen -Comment[pl]=Przestrzeń barw dla obrazków w skali szarości z 16-bitową liczbą całkowitą na kanał -Comment[pt]=Modelo de cor para imagens de tons de cinzento com 16 bits por canal -Comment[pt_BR]=Modelo de cor para imagens de tons de cinza com 16 bits por canal -Comment[ru]=Цветовое пространство градаций серого (целое 16-бит/канал) -Comment[sk]=Model farieb pre ČB/šedé obrázky so 16 bitmi na kanál -Comment[sl]=Barvni model za 16-bitna cela števila/kanal sivinske slike -Comment[sr]=Модел боја за слике у сивим нијансама, 16-битно целобројно по каналу -Comment[sr@Latn]=Model boja za slike u sivim nijansama, 16-bitno celobrojno po kanalu -Comment[sv]=Färgmodell för 16-bitars heltal per kanal gråskalebilder -Comment[uk]=Модель кольору для зображень відтінків сірого, 16-біт/канал -Comment[zh_CN]=每通道 16 位整数的灰度图像色彩模型 -Comment[zh_TW]=每色頻為 16-bit 的灰階圖片色彩模型 -ServiceTypes=Krita/ColorSpace -Type=Service -X-Krita-Version=2 -X-KDE-Library=krita_gray_u16_plugin |