Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_abstract_compression.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
12
16
18{
19 Q_UNUSED(dataSize);
20}
21
22void KisAbstractCompression::linearizeColors(quint8 *input, quint8 *output,
23 qint32 dataSize, qint32 pixelSize)
24{
25 quint8 *outputByte = output;
26 quint8 *lastByte = input + dataSize -1;
27
28 for(qint32 i = 0; i < pixelSize; i++) {
29 quint8 *inputByte = input + i;
30 while (inputByte <= lastByte) {
31 *outputByte = *inputByte;
32 outputByte++;
33 inputByte+=pixelSize;
34 }
35 }
36}
37
38void KisAbstractCompression::delinearizeColors(quint8 *input, quint8 *output,
39 qint32 dataSize, qint32 pixelSize)
40{
49 quint8 *outputByte = output;
50 quint8 *lastByte = output + dataSize -1;
51
52 qint32 strideSize = dataSize / pixelSize;
53 quint8 *startByte = input;
54
55 while (outputByte <= lastByte) {
56 quint8 *inputByte = startByte;
57
58 for(qint32 i = 0; i < pixelSize; i++) {
59 *outputByte = *inputByte;
60 outputByte++;
61 inputByte += strideSize;
62 }
63
64 startByte++;
65 }
66}
static void linearizeColors(quint8 *input, quint8 *output, qint32 dataSize, qint32 pixelSize)
static void delinearizeColors(quint8 *input, quint8 *output, qint32 dataSize, qint32 pixelSize)
virtual void adjustForDataSize(qint32 dataSize)