gpt4 book ai didi

c++ - qimage 类中的扫描线函数

转载 作者:行者123 更新时间:2023-11-28 08:13:39 29 4
gpt4 key购买 nike

我正在开发用于编辑光栅图形的应用程序。在这个应用程序中,我必须创建扫描线函数,它与 QImage 类中的扫描线函数做同样的事情。但是我对扫描线函数的工作方式和一般的扫描线有点困惑。例如,当我为高度为 177px 的图像调用 bytesPerLine() 时,我预计该值将为 531(每个像素 3 个字节),但此函数返回 520?

此外,当我使用 uchar 数据 = 图像->scanLine(y)[x]对于 R=249 G=249 B=249,可变数据中的值为 255。我真的不明白这个值(value)观。提前致谢:)

最佳答案

为了获得可靠的行为,您应该检查 QImage::format() 的返回值,以查看在访问原始图像数据之前使用的底层格式。

Qt 似乎更喜欢 RGB32/ARGB32 真彩色格式,其中每个像素占用 4 个字节,无论是否存在 alpha channel (对于 RGB32 格式,它只是用 0xff 填充)。如果您加载真彩色图像,它可能是这两种格式之一。

此外,字节顺序可能因平台而异,请尽可能使用 QRgb 访问 32 位像素。

顺便说一句,扫描线不应该是水平的吗?我认为您应该使用 width() 而不是 height() 来计算扫描线的长度。

关于c++ - qimage 类中的扫描线函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365076/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com