QT 二维数组转BMP BMP转二维数组 QImage转二维数组 的简便方法
1.问题的由来
因为领导的突发奇想想要将二维数组转换成图片,然后用画图工具修改后在转换为二维数组,我不得不把二维数组转化成BMP图片,然后在吧BMP格式图片转换为二维数组。
此处我使用的原始数据为 ushort 类,图像化后为灰度图。
2.二维矩阵 转 BMP图像
思路:二维数据 > QImage > QPixmap 保存
QImage images = QImage(/*char* 原始图像数据*/, 2400, 1920, QImage::Format_Indexed8);
QPixmap pix = QPixmap::fromImage(images);
pix.save(/*BMP图像 保存路径+文件名.bmp*/);
3.BMP图像 转 二维矩阵
思路:QImage加载BMP图片 > QImage获取像素颜色 > 计算灰度得到数值
QImage qTemp;
qTemp.load(/*BMP 图片路径*/);
ushort* qimage = new ushort[qTemp.width()*qTemp.height()];
QRgb qTempCol;
for (size_t i = 0; i < qTemp.width(); i++)
{
for (size_t j = 0; j < qTemp.height(); j++)
{
qTempCol = qTemp.pixel(i, j);
qimage[j*qTemp.width() + i] = qGray(qTempCol);
}
}