summaryrefslogtreecommitdiffstats
path: root/krita/colorspaces/gray_u16
diff options
context:
space:
mode:
Diffstat (limited to 'krita/colorspaces/gray_u16')
-rw-r--r--krita/colorspaces/gray_u16/Makefile.am29
-rw-r--r--krita/colorspaces/gray_u16/gray_u16_plugin.cc63
-rw-r--r--krita/colorspaces/gray_u16/gray_u16_plugin.h38
-rw-r--r--krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc658
-rw-r--r--krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h118
-rw-r--r--krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop83
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