作者:朱金灿
来源:http://blog.csdn.net/clever101
Qgis是一个著名的开源地理信息系统软件。今天研究了一下它的显示那一块,算是有一点眉目了。
在Windows环境下所有图像都构造一个位图来进行显示。QT也不例外,QT显示一个图像先要构造一个QImage出来。
Qgis中一个栅格文件对应一个栅格显示图层。栅格显示图层类为QgsRasterLayer。RGB模式绘制的主要函数是QgsRasterLayer::drawMultiBandColor。在QgsRasterLayer::drawMultiBandColor里构造一个QImage出来,其中调用了QgsRasterImageBuffer::nextScanLine是构造了一行位图数据。一个波段的缓存对应的是QgsRasterImageBuffer类。QgsRasterImageBuffer::nextScanLine调用的是QgsRasterImageBuffer::createNextPartImage来获取栅格文件中的数据。