the*_*sem 14 image qt4 getpixel
我正在构建一个QT GUI应用程序并使用QImage打开图像.我的问题是我无法弄清楚如何使用QImage的bit()和scanline()方法来获得每像素级别的访问权限.
我已经看到这个Qt QImage像素操作问题, 但这仅适用于每一行的第一个像素.这是对的还是我错了?
提前致谢
Kal*_*son 14
将scanlines对应于图像的高度,列对应于图像的宽度.
根据文档,原型看起来像uchar* QImage::scanline(int i)或类似的const版本.
但是,作为一个评论者指出的那样,因为数据是依赖于机器架构和形象,你应该不使用uchar *直接.相反,请使用以下内容:
QRgb *rowData = (QRgb*)img.scanLine(row);
QRgb pixelData = rowData[col];
int red = qRed(pixelData);
Run Code Online (Sandbox Code Playgroud)
Lev*_*viX 13
从Kaleb的帖子中可能不会立即显而易见,但以下内容适用于在Format_RGB32图像上设置像素.
// Get the line we want
QRgb *line = (QRgb *)image->scanLine(row_index);
// Go to the pixel we want
line += col_index;
// Actually set the pixel
*line = qRgb(qRed(color), qGreen(color), qBlue(color));
Run Code Online (Sandbox Code Playgroud)