文件名:【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题,蓝魔w30
【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题
QRect intersect_rect
;....QImage
img(intersect_rect
.size(), QImage
::Format_RGB888
);uchar
*pImageData
= (unsigned char *)img
.constBits();int img_width
= intersect_rect
.width();int img_height
= intersect_rect
.height();int qimg_line_space
= ceil((nRastercount
* img_width
) * 1.0 / sizeof(int)) * sizeof(int);GDALRasterBand
* pBand
= m_poDataset
->GetRasterBand(i
);pBand
->RasterIO(GF_Read
,intersect_rect
.x(), intersect_rect
.y(),sub_img_width
, sub_img_height
,pImageOffset
,sub_img_width
, sub_img_height
,GDT_Byte
,nRastercount
,qimg_line_space
); 原因是:QImage每行是按照sizeof(int)对齐的,如果在RasterIO时不明确指定最后一个参数,即行字节数,则图像会歪斜。
歪斜效果: 纠正后效果: