【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题
生活随笔
收集整理的這篇文章主要介紹了
【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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();// QImage每行是按照sizeof(int)對齊的,如果在RasterIO時不指定最后一個參數(shù),即行字節(jié)數(shù),則圖像會歪斜。
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); // 最后一個參數(shù)為0,會歪斜
原因是:QImage每行是按照sizeof(int)對齊的,如果在RasterIO時不明確指定最后一個參數(shù),即行字節(jié)數(shù),則圖像會歪斜。
歪斜效果:
糾正后效果:
總結(jié)
以上是生活随笔為你收集整理的【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有不良信用为什么信用卡会被降额
- 下一篇: ElasticSearch - JAVA