本文整理汇总了C++中KoColor::convertTo方法的典型用法代码示例。如果您正苦于以下问题:C++ KoColor::convertTo方法的具体用法?C++ KoColor::convertTo怎么用?C++ KoColor::convertTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoColor
的用法示例。
在下文中一共展示了KoColor::convertTo方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setStops
void KoStopGradient::setStops(QList< KoGradientStop > stops)
{
m_stops.clear();
KoColor color;
Q_FOREACH (const KoGradientStop & stop, stops) {
color = stop.second;
color.convertTo(colorSpace());
m_stops.append(KoGradientStop(stop.first, color));
}
示例2: getColorFromConverter
QColor KisVisualColorSelectorShape::getColorFromConverter(KoColor c){
QColor col;
KoColor color = c;
if (m_d->displayRenderer) {
color.convertTo(m_d->displayRenderer->getPaintingColorSpace());
col = m_d->displayRenderer->toQColor(c);
} else {
col = c.toQColor();
}
return col;
}
示例3: setColorFromSibling
void KisVisualColorSelectorShape::setColorFromSibling(KoColor c)
{
//qDebug() << this << "setColorFromSibling";
if (c.colorSpace() != m_d->colorSpace) {
c.convertTo(m_d->colorSpace);
}
m_d->currentColor = c;
Q_EMIT sigNewColor(c);
m_d->imagesNeedUpdate = true;
update();
}
示例4: setColor
void KisVisualColorSelectorShape::setColor(KoColor c)
{
//qDebug() << this << "KisVisualColorSelectorShape::setColor";
if (c.colorSpace() != m_d->colorSpace) {
c.convertTo(m_d->colorSpace);
}
m_d->currentColor = c;
updateCursor();
m_d->imagesNeedUpdate = true;
update();
}
示例5: pick
bool pick(KisPaintDeviceSP dev, const QPoint& pos, KoColor *color)
{
KIS_ASSERT(dev);
KoColor pickedColor;
dev->pixel(pos.x(), pos.y(), &pickedColor);
pickedColor.convertTo(dev->compositionSourceColorSpace());
bool validColorPicked =
pickedColor.opacityU8() != OPACITY_TRANSPARENT_U8;
if (validColorPicked) {
pickedColor.setOpacity(OPACITY_OPAQUE_U8);
*color = pickedColor;
}
return validColorPicked;
}
示例6: paintEvent
void KisShadeSelectorLine::paintEvent(QPaintEvent *)
{
if (m_cachedColorSpace != m_parentProxy->colorSpace()) {
m_realPixelCache = new KisPaintDevice(m_parentProxy->colorSpace());
m_cachedColorSpace = m_parentProxy->colorSpace();
}
else {
m_realPixelCache->clear();
}
int patchCount;
int patchSpacing;
if(m_gradient) {
patchCount = width();
patchSpacing = 0;
}
else {
patchCount = m_patchCount;
patchSpacing = 3;
}
qreal patchWidth = (width()-patchSpacing*patchCount)/qreal(patchCount);
qreal hueStep=m_hueDelta/qreal(patchCount);
qreal saturationStep=m_saturationDelta/qreal(patchCount);
qreal valueStep=m_valueDelta/qreal(patchCount);
qreal baseHue;
qreal baseSaturation;
qreal baseValue;
m_parentProxy->converter()->
getHsvF(m_realColor, &baseHue, &baseSaturation, &baseValue);
int z=0;
for(int i=-patchCount/2; i<=patchCount/2; i++) {
if(i==0 && patchCount%2==0) continue;
qreal hue = baseHue + (i * hueStep) + m_hueShift;
while (hue < 0.0) hue += 1.0;
while (hue > 1.0) hue -= 1.0;
qreal saturation = qBound<qreal>(0., baseSaturation + (i * saturationStep) + m_saturationShift, 1.);
qreal value = qBound<qreal>(0., baseValue + (i * valueStep) + m_valueShift, 1.);
QRect patchRect(z * (patchWidth + patchSpacing), 0, patchWidth, m_lineHeight);
KoColor patchColor = m_parentProxy->converter()->fromHsvF(hue, saturation, value);
patchColor.convertTo(m_realPixelCache->colorSpace());
m_realPixelCache->fill(patchRect, patchColor);
z++;
}
QPainter wpainter(this);
QImage renderedImage = m_parentProxy->converter()->toQImage(m_realPixelCache);
wpainter.drawImage(0, 0, renderedImage);
if(m_displayHelpText) {
QString helpText(i18n("delta h=%1 s=%2 v=%3 shift h=%4 s=%5 v=%6",
m_hueDelta,
m_saturationDelta,
m_valueDelta,
m_hueShift,
m_saturationShift,
m_valueShift));
wpainter.setPen(QColor(255,255,255));
wpainter.drawText(rect(), helpText);
}
}
示例7: convertKoColorToShapeCoordinate
QPointF KisVisualColorSelectorShape::convertKoColorToShapeCoordinate(KoColor c)
{
////qDebug() << this << ">>>>>>>>> convertKoColorToShapeCoordinate()";
if (c.colorSpace() != m_d->colorSpace) {
c.convertTo(m_d->colorSpace);
}
QVector <float> channelValues (m_d->currentColor.colorSpace()->channelCount());
channelValues.fill(1.0);
m_d->colorSpace->normalisedChannelsValue(c.data(), channelValues);
QVector <float> channelValuesDisplay = channelValues;
QVector <qreal> maxvalue(c.colorSpace()->channelCount());
maxvalue.fill(1.0);
if (m_d->displayRenderer
&& (m_d->colorSpace->colorDepthId() == Float16BitsColorDepthID
|| m_d->colorSpace->colorDepthId() == Float32BitsColorDepthID
|| m_d->colorSpace->colorDepthId() == Float64BitsColorDepthID)
&& m_d->colorSpace->colorModelId() != LABAColorModelID
&& m_d->colorSpace->colorModelId() != CMYKAColorModelID) {
for (int ch = 0; ch<maxvalue.size(); ch++) {
KoChannelInfo *channel = m_d->colorSpace->channels()[ch];
maxvalue[ch] = m_d->displayRenderer->maxVisibleFloatValue(channel);
channelValues[ch] = channelValues[ch]/(maxvalue[ch]);
channelValuesDisplay[KoChannelInfo::displayPositionToChannelIndex(ch, m_d->colorSpace->channels())] = channelValues[ch];
}
} else {
for (int i =0; i<channelValues.size();i++) {
channelValuesDisplay[KoChannelInfo::displayPositionToChannelIndex(i, m_d->colorSpace->channels())] = qBound((float)0.0,channelValues[i], (float)1.0);
}
}
QPointF coordinates(0.0,0.0);
qreal huedivider = 1.0;
qreal huedivider2 = 1.0;
if (m_d->channel1==0) {
huedivider = 360.0;
}
if (m_d->channel2==0) {
huedivider2 = 360.0;
}
if (m_d->model != ColorModel::Channel && c.colorSpace()->colorModelId().id() == "RGBA") {
if (c.colorSpace()->colorModelId().id() == "RGBA") {
if (m_d->model == ColorModel::HSV){
QVector <float> inbetween(3);
RGBToHSV(channelValuesDisplay[0],channelValuesDisplay[1], channelValuesDisplay[2], &inbetween[0], &inbetween[1], &inbetween[2]);
inbetween = convertvectorqrealTofloat(getHSX(convertvectorfloatToqreal(inbetween)));
coordinates.setX(inbetween[m_d->channel1]/huedivider);
if (m_d->dimension == Dimensions::twodimensional) {
coordinates.setY(inbetween[m_d->channel2]/huedivider2);
}
} else if (m_d->model == ColorModel::HSL) {
QVector <float> inbetween(3);
RGBToHSL(channelValuesDisplay[0],channelValuesDisplay[1], channelValuesDisplay[2], &inbetween[0], &inbetween[1], &inbetween[2]);
inbetween = convertvectorqrealTofloat(getHSX(convertvectorfloatToqreal(inbetween)));
coordinates.setX(inbetween[m_d->channel1]/huedivider);
if (m_d->dimension == Dimensions::twodimensional) {
coordinates.setY(inbetween[m_d->channel2]/huedivider2);
}
} else if (m_d->model == ColorModel::HSI) {
QVector <qreal> chan2 = convertvectorfloatToqreal(channelValuesDisplay);
QVector <qreal> inbetween(3);
RGBToHSI(channelValuesDisplay[0],channelValuesDisplay[1], channelValuesDisplay[2], &inbetween[0], &inbetween[1], &inbetween[2]);
inbetween = getHSX(inbetween);
coordinates.setX(inbetween[m_d->channel1]);
if (m_d->dimension == Dimensions::twodimensional) {
coordinates.setY(inbetween[m_d->channel2]);
}
} else if (m_d->model == ColorModel::HSY) {
QVector <qreal> luma = m_d->colorSpace->lumaCoefficients();
QVector <qreal> chan2 = convertvectorfloatToqreal(channelValuesDisplay);
QVector <qreal> inbetween(3);
RGBToHSY(channelValuesDisplay[0],channelValuesDisplay[1], channelValuesDisplay[2], &inbetween[0], &inbetween[1], &inbetween[2], luma[0], luma[1], luma[2]);
inbetween = getHSX(inbetween);
coordinates.setX(inbetween[m_d->channel1]);
if (m_d->dimension == Dimensions::twodimensional) {
coordinates.setY(inbetween[m_d->channel2]);
}
}
}
} else {
coordinates.setX(qBound((float)0.0, channelValuesDisplay[m_d->channel1], (float)1.0));
if (m_d->dimension == Dimensions::twodimensional) {
coordinates.setY(qBound((float)0.0, channelValuesDisplay[m_d->channel2], (float)1.0));
}
}
return coordinates;
}
示例8: fetchDabCommon
inline
KisFixedPaintDeviceSP KisDabCache::fetchDabCommon(const KoColorSpace *cs,
const KisColorSource *colorSource,
const KoColor& color,
double scaleX, double scaleY,
double angle,
const KisPaintInformation& info,
double subPixelX, double subPixelY,
qreal softnessFactor)
{
if (!m_d->dab || !(*m_d->dab->colorSpace() == *cs)) {
m_d->dab = new KisFixedPaintDevice(cs);
} else {
KisFixedPaintDeviceSP cachedDab =
tryFetchFromCache(colorSource, color, scaleX, scaleY, angle,
info, subPixelX, subPixelY, softnessFactor);
if (cachedDab) return cachedDab;
}
if (m_d->brush->brushType() == IMAGE || m_d->brush->brushType() == PIPE_IMAGE) {
m_d->dab = m_d->brush->paintDevice(cs, scaleX, angle, info,
subPixelX, subPixelY);
}
else {
if (!colorSource) {
KoColor paintColor = color;
paintColor.convertTo(cs);
*m_d->cachedDabParameters = getDabParameters(paintColor,
scaleX, scaleY,
angle, info,
subPixelX, subPixelY,
softnessFactor);
m_d->brush->mask(m_d->dab, paintColor, scaleX, scaleY, angle,
info, subPixelX, subPixelY, softnessFactor);
} else if (colorSource->isUniformColor()) {
KoColor paintColor = colorSource->uniformColor();
paintColor.convertTo(cs);
*m_d->cachedDabParameters = getDabParameters(paintColor,
scaleX, scaleY,
angle, info,
subPixelX, subPixelY,
softnessFactor);
m_d->brush->mask(m_d->dab, paintColor, scaleX, scaleY, angle,
info, subPixelX, subPixelY, softnessFactor);
} else {
if (!m_d->colorSourceDevice || !(*cs == *m_d->colorSourceDevice->colorSpace())) {
m_d->colorSourceDevice = new KisPaintDevice(cs);
} else {
m_d->colorSourceDevice->clear();
}
QRect maskRect(0, 0, m_d->brush->maskWidth(scaleX, angle, info), m_d->brush->maskHeight(scaleY, angle, info));
colorSource->colorize(m_d->colorSourceDevice, maskRect, info.pos().toPoint());
delete m_d->colorSourceDevice->convertTo(cs);
m_d->brush->mask(m_d->dab, m_d->colorSourceDevice, scaleX, scaleY, angle,
info, subPixelX, subPixelY, softnessFactor);
}
}
if (needSeparateOriginal()) {
if (!m_d->dabOriginal || !(*cs == *m_d->dabOriginal->colorSpace())) {
m_d->dabOriginal = new KisFixedPaintDevice(cs);
}
*m_d->dabOriginal = *m_d->dab;
}
postProcessDab(m_d->dab, info);
return m_d->dab;
}
示例9: updateValues
void KoUniColorChooser::updateValues()
{
KoColor tmpColor;
m_HIn->blockSignals(true);
m_SIn->blockSignals(true);
m_VIn->blockSignals(true);
m_RIn->blockSignals(true);
m_GIn->blockSignals(true);
m_BIn->blockSignals(true);
if (cmykColorSpace()) {
m_CIn->blockSignals(true);
m_MIn->blockSignals(true);
m_YIn->blockSignals(true);
m_KIn->blockSignals(true);
}
m_LIn->blockSignals(true);
m_aIn->blockSignals(true);
m_bIn->blockSignals(true);
/*
KoOldColor color = m_fgColor;
int h = color.H();
int s = color.S();
int v = color.V();
m_HIn->setValue(h);
m_SIn->setValue(s);
m_VIn->setValue(v);
*/
tmpColor = m_currentColor;
tmpColor.convertTo(rgbColorSpace());
m_RIn->setValue(tmpColor.data()[2]);
m_GIn->setValue(tmpColor.data()[1]);
m_BIn->setValue(tmpColor.data()[0]);
if(m_showOpacitySlider)
{
m_opacitySlider->blockSignals(true);
m_opacityIn->blockSignals(true);
KoColor minColor = tmpColor;
tmpColor.colorSpace()->setOpacity(minColor.data(), OPACITY_TRANSPARENT_U8, 1);
KoColor maxColor = tmpColor;
tmpColor.colorSpace()->setOpacity(maxColor.data(), OPACITY_OPAQUE_U8, 1);
m_opacitySlider->setColors(minColor, maxColor);
m_opacitySlider->setValue(tmpColor.opacityF() * 100 );
m_opacityIn->setValue(tmpColor.opacityF() * 100 );
m_opacityIn->blockSignals(false);
m_opacitySlider->blockSignals(false);
}
tmpColor = m_currentColor;
tmpColor.convertTo(labColorSpace());
m_LIn->setValue(((quint16 *)tmpColor.data())[0]/(256*256/100));
m_aIn->setValue(((quint16 *)tmpColor.data())[1]/256);
m_bIn->setValue(((quint16 *)tmpColor.data())[2]/256);
if ( cmykColorSpace() ) {
tmpColor = m_currentColor;
tmpColor.convertTo(cmykColorSpace());
m_CIn->setValue((tmpColor.data()[0]*100)/255);
m_MIn->setValue((tmpColor.data()[1]*100/255));
m_YIn->setValue((tmpColor.data()[2]*100)/255);
m_KIn->setValue((tmpColor.data()[3]*100)/255);
}
m_HIn->blockSignals(false);
m_SIn->blockSignals(false);
m_VIn->blockSignals(false);
m_RIn->blockSignals(false);
m_GIn->blockSignals(false);
m_BIn->blockSignals(false);
if (cmykColorSpace()) {
m_CIn->blockSignals(false);
m_MIn->blockSignals(false);
m_YIn->blockSignals(false);
m_KIn->blockSignals(false);
}
m_LIn->blockSignals(false);
m_aIn->blockSignals(false);
m_bIn->blockSignals(false);
}