项目图片功能制作

之前已经让桌面非常显示,并且可以移动

这次来做照片

开始的时候,进入图片,图片加载不出来,我以为是图片格式不对

改变了图片格式,并改成了英文名

cpp 复制代码
#!/bin/bash
# 嵌入式Qt图片批量缩放+加载验证脚本(i.MX6ULL开发板专用)
# 配置项(根据你的LCD屏幕修改)
TARGET_RES="800x480"  # LCD实际分辨率,如480x272/800x480
IMAGE_DIR="/home/linux/imx6ull_dev/ubuntu_sys/ubuntu_rootfs/opt/ui/src/apps/resource/images"  # 图片目录
QT_BIN="/usr/bin/qmake"  # Qt安装路径(默认无需修改)

# 颜色输出函数
red_echo() { echo -e "\033[31m$1\033[0m"; }
green_echo() { echo -e "\033[32m$1\033[0m"; }
blue_echo() { echo -e "\033[34m$1\033[0m"; }

# 第一步:检查依赖
blue_echo "===== 1. 检查必要依赖 ====="
if ! command -v convert &> /dev/null; then
    red_echo "未安装imagemagick,正在自动安装..."
    apt update && apt install -y imagemagick || { red_echo "安装imagemagick失败!"; exit 1; }
fi
if ! command -v g++ &> /dev/null; then
    red_echo "未安装g++,正在自动安装..."
    apt install -y g++ || { red_echo "安装g++失败!"; exit 1; }
fi
if ! dpkg -l | grep -q qt5-image-formats-plugins; then
    red_echo "未安装Qt图片插件,正在自动安装..."
    apt install -y qt5-image-formats-plugins || { red_echo "安装Qt插件失败!"; exit 1; }
fi

# 第二步:进入图片目录
blue_echo "\n===== 2. 进入图片目录 ====="
cd $IMAGE_DIR || { red_echo "图片目录不存在:$IMAGE_DIR"; exit 1; }
green_echo "当前目录:$(pwd)"

# 第三步:批量缩放图片(仅处理jpg/jpeg)
blue_echo "\n===== 3. 批量缩放图片到 $TARGET_RES ====="
for img in *.jpg *.jpeg; do
    # 跳过不存在的文件(避免通配符匹配失败)
    [ -f "$img" ] || continue
    
    # 生成缩放后的文件名(加_small后缀)
    small_img="${img%.*}_small.${img##*.}"
    if [ -f "$small_img" ]; then
        green_echo "已存在缩放文件:$small_img,跳过缩放"
        continue
    fi
    
    # 缩放图片(保持比例,不拉伸)
    blue_echo "正在缩放:$img → $small_img"
    convert "$img" -resize ${TARGET_RES}\> "$small_img" || { red_echo "缩放$img失败!"; continue; }
    
    # 修改缩放后文件权限
    chmod 644 "$small_img"
    green_echo "缩放完成:$small_img"
done

# 清理临时文件
rm -f /tmp/qt_image_check.cpp /tmp/qt_image_check

green_echo "\n===== 操作完成!====="
green_echo "✅ 所有缩放后的图片已保存在:$IMAGE_DIR"
green_echo "✅ 建议修改photoview代码,加载带_small后缀的图片(如bird_small.jpg)"

一个脚本,执行完后,用file命令看图片是否符合

符合,但是还是卡住了

而且多加了图片的读写权限

看这里,platforms是进去桌面,解析的程序,要把相应的库加进去(libqjpeg.so

加进去了

但是一直在加载

二、第二步

退而求其次,我们先让图片加载出来

执行

cpp 复制代码
./photoview /opt/ui/src/apps/resource/images/bird_small.jpg

结果报错

开发板缺失 Qt5 Widgets 核心库

步骤 1:虚拟机侧找到缺失的库(Ubuntu 虚拟机执行)

cpp 复制代码
# 查找Qt5 Widgets库路径
find ~/imx6ull_dev/ubuntu_sys/ubuntu_rootfs/usr/lib -name "libQt5Widgets.so*"
# 输出示例:~/imx6ull_dev/ubuntu_sys/ubuntu_rootfs/usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5.15.3
步骤 2:拷贝库到开发板(虚拟机执行,替换开发板 IP)

继续执行

成功

OK!了

相关推荐
广州灵眸科技有限公司7 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
华清远见IT开放实验室11 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
Quz12 小时前
QML 信号与槽:直接绑定与跨文件通信
qt·编程语言·设计
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
GIS阵地13 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis