Open seadog-www opened 2 years ago
This is a known limitation of 16-bit color. To work around it, you need to dither the image. Support for this is likely to be added to LVGL (v8) soon, but you may also be able to do it by manually dithering the image in GIMP or another tool first.
You can also use e.g. 10 px high dithered image and let LVGL tile it.
This is a known limitation of 16-bit color. To work around it, you need to dither the image. Support for this is likely to be added to LVGL (v8) soon, but you may also be able to do it by manually dithering the image in GIMP or another tool first.
Is this method similar to yours
You can also use e.g. 10 px high dithered image and let LVGL tile it.
I'm sorry I don't quite understand what you mean. I don't know what the number of pixels has to do with this problem. Can you explain. Thank you!
Let's say you can have a dithered 10x200 image and you can set it for a 200x200 lv_img
widget. (LVGL automatically tiles the image source if it's smaller than the widget size.)
Hello, I use the lv_lib_png have a problem. LVGL version: 7.0. My PNG image is RGBA8888, and the LV_COLOR_DEPTH is set to 16 because the device only supports 16bit pix. when trying to display some image with gradient color, there is a picture distortion problem. original image is:
in fact, displaying image is:
I find the problem is in function "convert_color_depth" in lv_png.c. In this function, RGB888 is converted to RGB 565, and low bits of R byte、G byte and B byte are dropped, which creates such a problem.
So,there is a better way to deal with it. Thank you for your replying!