Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Post History

60%
+1 −0
Q&A Iterating over pixels in QImage (Qt): which method adapts better for any image size?

If your only concern is overflowing the 64-bit pixelCount value, you can safely forget about it. By the time you are processing an image with 18 quintillion (2^64) pixels, you will have bigger prob...

posted 1d ago by InfiniteDissent‭

Answer
#1: Initial revision by user avatar InfiniteDissent‭ · 2025-02-21T10:46:23Z (1 day ago)
If your only concern is overflowing the 64-bit `pixelCount` value, you can safely forget about it. By the time you are processing an image with 18 quintillion (`2^64`) pixels, you will have bigger problems than a simple loop counter. The [largest images produced so far](https://en.wikipedia.org/wiki/List_of_largest_photographs#Digital_photograph) are approaching 1 terapixel (`10^12` pixels), and you'd need 18 million of these to get anywhere near the limit of a 64-bit value. All the data centers of Google and Facebook combined probably couldn't store such a large image, and no computer in the world could load it into memory as a QImage that you can process pixel-by-pixel. Even if you could load it, iterating over its pixels one at a time would take over 140 years, assuming your loop runs on a 4 GHz CPU and requires at least one clock cycle per iteration.

The more relevant danger with the pixelCount approach is that there is no guarantee that the lines of the image are stored "packed" in memory: in other words, the final pixel of line 0 might not be immediately followed by the first pixel of line 1. There might be some padding bytes in between, especially if the image has an odd size like 639x451 and the QImage implementation wants to keep line start addresses aligned to 4-byte (or greater) boundaries. If this is the case, then your assumption that you can treat the 2D image as a 1D array will not hold, and your loop will end up reading a certain amount of garbage data.

For this reason, I would recommend processing the image one scanline at a time, unless you *know* that successive scanlines are packed together without any padding.