- ReaderWriterGDAL: fix stride when reading multi-channel images with more than 1 byte per pixel
This commit is contained in:
parent
85a79f53d7
commit
b4cf315d6f
@ -370,9 +370,9 @@ class ReaderWriterGDAL : public osgDB::ReaderWriter
|
|||||||
OSG_INFO << "reading RGBA"<<std::endl;
|
OSG_INFO << "reading RGBA"<<std::endl;
|
||||||
|
|
||||||
bandRed->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandRed->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandGreen->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandGreen->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandBlue->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+2),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandBlue->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+2*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandAlpha->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+3),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandAlpha->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+3*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -389,8 +389,8 @@ class ReaderWriterGDAL : public osgDB::ReaderWriter
|
|||||||
OSG_INFO << "reading RGB"<<std::endl;
|
OSG_INFO << "reading RGB"<<std::endl;
|
||||||
|
|
||||||
bandRed->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandRed->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandGreen->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandGreen->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandBlue->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+2),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandBlue->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+2*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -409,7 +409,7 @@ class ReaderWriterGDAL : public osgDB::ReaderWriter
|
|||||||
OSG_INFO << "reading grey + alpha"<<std::endl;
|
OSG_INFO << "reading grey + alpha"<<std::endl;
|
||||||
|
|
||||||
bandGray->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandGray->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+0),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
bandAlpha->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
bandAlpha->RasterIO(GF_Read,windowX,windowY,windowWidth,windowHeight,(void*)(imageData+1*numBytesPerPixel),destWidth,destHeight,targetGDALType,pixelSpace,lineSpace);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user