Skip to main content
JBenn.1
Associate III
February 24, 2022
Question

What causes the color errors in the framebuffer/screenshot?

  • February 24, 2022
  • 3 replies
  • 3341 views

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

This topic has been closed for replies.

3 replies

MM..1
Super User
February 24, 2022

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...

JBenn.1
JBenn.1Author
Associate III
February 24, 2022

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.

JBenn.1
JBenn.1Author
Associate III
February 24, 2022

..