Qt: Каков самый масштабируемый способ перебора QImage?

Я знаю два метода, чтобы получить доступ ко всем пикселям в QImage называется img,

Способ 1

for (int y = 0; y < img.height(); y++) {
QRgb *line = (QRgb *) img.scanline(y);
for (int x = 0; x < img.width(); x++) {
// line[x] has an individual pixel
line[x] = QColor(255, 128, 0).rgb();
}
}

Способ 2

QRgb *st = (QRgb *) img.bits();
quint64 pixelCount = img.width() * img.height();

for (quint64 p = 0; p < pixelCount; p++) {
// st[p] has an individual pixel
st[p] = QColor(255, 128, 0).rgb();
}

Я заинтересован в использовании второго метода, так как он включает только один цикл, но я также обеспокоен любыми возможными переполнениями на pixelCount если обрабатывает «достаточно большое» изображение.

Вопрос

Каков самый масштабируемый способ перебора всех пикселей, хранящихся в QImage? От масштабируемый Я имею в виду, что он все равно будет работать независимо от размеров изображения (ширина и высота).

НОТА: Я уже знаю, что существуют «физические» ограничения с точки зрения использования памяти. Я просто хочу знать, способны ли оба метода достичь такого предела.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]