31{
32 const int channels = isTrichromatic ? 3 : 1;
33 const int chSize = static_cast<int>(CSTrait::pixelSize / 5);
34 const int pxSize = chSize * channels;
35 const int chOffset = chPos * chSize;
36
37 QByteArray res;
38 res.resize(width * height * pxSize);
39
40 quint8 *ptr = reinterpret_cast<quint8 *>(res.data());
41
42 for (int y = 0; y < height; y++) {
43 for (int x = 0; x < width; x++) {
45
46 if (isTrichromatic) {
47 for (int i = 0; i < channels; i++) {
48 std::memcpy(ptr, src + (i * chSize), chSize);
49 ptr += chSize;
50 }
51 } else {
52 std::memcpy(ptr, src + chOffset, chSize);
53 ptr += chSize;
54 }
55
57 }
58
60 }
61 return res;
62}
virtual const quint8 * rawDataConst() const =0
virtual bool nextPixel()=0