QT 给Qimage数据赋值,显示异常,像素对齐的坑

如果使用QImage(width, height, format)的形式创建qimage

有时候QT底层为了效率会使用像素对齐

一行的数据不一定为width

例如:

cpp 复制代码
QImage image = QImage(502, 410, QImage::Format_RGB888);
qDebug() << image.bytesPerLine();
// 按照设想应该输出 502 * 3 = 1506
// 实际输出 1508

// 假设你有一个 rgb888 数据需要赋值给 QImage
const quint8 *src_rgb888_data;

// 这种情况显示QImage的图像就会异常
memcpy(image.bits(), src_rgb888_data, image.width() * image.height() * 3);

// 正确的赋值方法
const quint8 *src = src_rgb888_data;
int srcStride = image.width() * 3;

quint8 *dst = image.bits();
int stride = image.bytesPerLine();
for(int i = 0; i < image.height(); i ++) {
	const quint8 *src_row = src + (i * srcStride);
    quint8 *row = dst + (i * stride);
    
    memcpy(row, src_row, srcStride);
}
相关推荐
柒.梧.1 天前
HTML入门指南:30分钟掌握网页基础
前端·javascript·html
用户54277848515401 天前
Promise :从基础原理到高级实践
前端
用户4099322502121 天前
Vue3条件渲染中v-if系列指令如何合理使用与规避错误?
前端·ai编程·trae
Mr_Swilder1 天前
2025-12-20 vue3中 eslint9+和prettier配置
前端
code_YuJun1 天前
脚手架开发工具——判断文件是否存在 path-exists
前端
code_YuJun1 天前
脚手架开发工具——root-check
前端
用户54277848515401 天前
XMLHttpRequest、AJAX、Fetch 与 Axios
前端
魔芋红茶1 天前
Netty 简易指南
java·开发语言·netty
打小就很皮...1 天前
React 实现富文本(使用篇&Next.js)
前端·react.js·富文本·next.js
洵有兮1 天前
python第四次作业
开发语言·python