[Gdal-dev] Re: urgent help needed
Frank Warmerdam
warmerdam at pobox.com
Thu Sep 15 18:16:34 EDT 2005
On 9/15/05, hina arif <hina192002 at yahoo.com> wrote:
>
>
>
> hi i need help once again same is the way i am working on .i mean the way i
> read the file is almost same but the problem is that when i read a file
> using GetRasterCount() it says that the file has only one band and then i
> read like that
>
> poBand->GetBlockSize(&nBlockXSize,&nBlockYSize);//resolution
>
>
>
> pabyData = (GByte
> *)CPLMalloc(nBlockXSize*nBlockYSize*nBand*sizeof(GByte));//heap
> memory
>
> if(pabyData==NULL) error
>
>
>
> for(int i=0;i<poBand->GetBand();++i)
>
> e=poBand->ReadBlock(i,i,pabyData);
>
Hina,
You should not generally be using the ReadBlock() method. It
is mainly intended for low level applications.
> or i used readIO like this
>
> e=poBand->RasterIO(GF_Read, 0,0,nBlockXSize,
> 0,pabyData,nBlockXSize,0,GDT_Byte,0,0);
>
> if i use value other than 0 an error comes and i think i am reading a band
> located at location 0,0 the first and only one
> my file is of resolution 24810,784200 and its an black and white map image
> file
>
> sorry but i need ur assistance that what is an error in the code
That is a large file! Was there a particular reason you were trying
to read based on the block size? The block size is basically the size
of a chunk in the file. If you wanted to read just the first block you could
do that
poBand->RasterIO( GF_Read, 0, 0, nBlockXSize, nBlockYSize,
pabyData, nBlockXSize, nBlockYSize,
GDT_Byte, 0, 0 );
I'm not sure which zero you were referring to changing .. there are several.
Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Programmer for Rent
More information about the Gdal-dev
mailing list