cancel
Showing results for 
Search instead for 
Did you mean: 

What causes the color errors in the framebuffer/screenshot?

JBenn.1
Associate II

Hello

I have implemented a screenshot function that copies the first framebuffer and transfers it to the PC via a UART.

Everything works fine, but some pixels have incorrect colors in the screenshot.

Especially the colorbending in for creen does not look correct.

You can see single pixel lines in the green color palette as well as in the gray tones on the screenshots.

The colors on the display, on the other hand, look correct.

Is it possible that the anti-aliasing or something else is causing the color changes?

The raw values are attached as a csv file.

To create the RGB888 colors, I simply move the colors from the original RGB565 to the correct location. The wrong pixels are also visible in the raw data.

I have checked the data in the framebuffer. You can see the errors there as well.

The data is transferred correctly.

Does anyone have an idea where the wrong colors are coming from?

Used System:

TouchGFX 4.16.0

STM32F7

Display 480x272 RGB585

3 REPLIES 3
MM..1
Chief II

You dont write how you create pattern, but i mean convert png image. And converter create cpp file. check if pixels in cpp is fail...

For this test Image I use the touchgfx PixelDataWidget and write it into a buffer on the external RAM.

void setPixel(uint16_t x, uint16_t y, touchgfx::colortype c){
	buffer[x*2 + y*480*2+1] = ((uint16_t)c) >> 8;
	buffer[x*2 + y*480*2] 	= ((uint16_t)c) & 0xFF;
}

However, the same color errors occur on all other screens and widgets.

At first, we only noticed the wrong pixels on the button.

But the RadioButton was even more shocking.