4.3寸TFTLCD显示JPG图片

本文介绍了如何在JZ2440主板上,使用S3C2440A主控芯片和4.3寸TFTLCD(AT043TN24 V.1)显示JPG图片。通过Windows画图工具裁剪图片以适应480x272分辨率,并利用Python的PIL库提取像素数据生成bin文件。由于bin文件较大,建议通过uboot的DNW快速下载,但需注意文件大小限制和显示残留问题。

说明

在JZ2440上显示自己的图片,全屏显示。已知分辨率是480*272,为了适应lcd的大小,又不使图片变形,需要对图片进行分辨率调整并裁剪,这里用到windows的自带画图工具。需要获得图片的像素数据,用python的PIL库对图片进行像素提取。

硬件平台

主板:JZ2440
主控芯片:S3C2440A
LCD型号:AT043TN24 V.1
分辨率:480x272
像素:24bpp
像素格式:0XRRGGBB

图片的裁剪

原始图片如下:
在这里插入图片描述

分辨率为:4032*3024
打开画图工具,对图片进行裁剪,保持图片比例,将水平分辨率调整为480,则垂直分辨率变为360,如图所示:
在这里插入图片描述

然后对图片进行矩形选择,选择480*272的尺寸:
在这里插入图片描述
在这里插入图片描述

然后点击【裁剪】,保存图片后就得到分辨率为480*272的图片。

用python提取图片的像素数据

将新图片命名为4.jpg,python代码如下:

from PIL import Image
img=Image.open("4.jpg","r")
print(img.size)
width,height=img.size
file = "hexbpp.txt"
out="const unsigned int bppColor[]=\n{\n"
for y in range(0,
### 如何在正点原子 4.3 TFT LCD 上显示图片 为了实现在正点原子 4.3 TFT LCD 屏幕上显示图片的功能,通常会采用图形库来简化开发过程。对于 STM32 平台而言,TouchGFX 是一种流行的选择[^3]。 #### 使用 TouchGFX 显示图像 1. **创建新项目** 通过 STM32CubeMX 配置硬件参数,并选择使用 TouchGFX 来生成初始框架代码。这一步骤能够确保所有必要的外设被正确初始化,从而支持后续的 GUI 开发工作。 2. **导入图片资源** 利用 TouchGFX Designer 工具将目标图片文件(如 PNG 或 JPEG)添加到项目中作为静态资源。这些资源会被编译成适合嵌入式系统的格式存储于 Flash 中。 3. **编写显示逻辑** 下面是一个简单的 C++ 函数用于展示如何加载并呈现一张预先定义好的位图: ```cpp void showImageOnScreen(BitmapId bitmap_id) { // 获取当前窗口对象指针 Screen* screen = Application::getInstance()->getActiveWindow(); // 创建一个新的 BitmapXY 控件实例 BitmapXY* imageWidget = new (std::nothrow) BitmapXY(); if(imageWidget != NULL){ // 设置控件属性 imageWidget->setBitmap(bitmap_id); // 定义位置和大小 imageWidget->setPosition(0, 0); // 坐标原点位于左上角 imageWidget->setWidth(screen->getWidth()); imageWidget->setHeight(screen->getHeight()); // 将控件添加至屏幕布局内 screen->add(imageWidget); delete imageWidget; } } ``` 此函数接收一个 `BitmapId` 类型参数代表要显示的具体图片 ID,在实际应用时可以根据需求调整其坐标以及尺等特性。 4. **调用上述方法** 最后只需要简单地调用上面定义的方法即可完成指定图片的渲染操作。例如可以在某个按钮点击事件处理程序里触发它,或者是在应用程序启动完成后立即执行一次以达到开机即显的效果。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值