void KisCurveMagnetic::toGrayScale(const QRect& rect, KisPaintDeviceSP src, GrayMatrix& dst) { int grectx = rect.x(); int grecty = rect.y(); int grectw = rect.width(); int grecth = rect.height(); QColor c; KoColorSpace *cs = src->colorSpace(); KisHLineIteratorPixel srcIt = src->createHLineIterator(grectx, grecty, grectw); for (int row = 0; row < grecth; row++) { for (int col = 0; col < grectw; col++) { cs->toQColor(srcIt.rawData(), &c); dst[col][row] = qGray(c.rgb()); ++srcIt; } srcIt.nextRow(); } }