Changeset 14415

Show
Ignore:
Timestamp:
05/09/08 11:46:03 (2 months ago)
Author:
rouault
Message:

Test implicit and explicit BigTIFF creation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/autotest/gcore/tiff_write.py

    r14414 r14415  
    917917 
    918918    gdaltest.tiff_drv.Delete( 'tmp/rgba.tif' ) 
     919 
     920    return 'success' 
     921 
     922 
     923############################################################################### 
     924# Create a BigTIFF image with BigTIFF=YES 
     925 
     926def tiff_write_30(): 
     927 
     928    drv = gdal.GetDriverByName( 'GTiff' ) 
     929    md = drv.GetMetadata() 
     930    if string.find(md['DMD_CREATIONOPTIONLIST'],'BigTIFF') == -1: 
     931        return 'skip' 
     932 
     933    ds = gdaltest.tiff_drv.Create( 'tmp/bigtiff.tif', 1, 1, 1, options = ['BigTIFF=YES'] ) 
     934    ds = None 
     935 
     936    ds = gdal.Open( 'tmp/bigtiff.tif' ) 
     937    if ds is None: 
     938        return 'fail' 
     939    ds = None 
     940 
     941    fileobj = open( 'tmp/bigtiff.tif', mode='rb') 
     942    binvalues = array.array('b') 
     943    binvalues.read(fileobj, 4) 
     944    fileobj.close() 
     945 
     946    gdaltest.tiff_drv.Delete( 'tmp/bigtiff.tif' ) 
     947 
     948    # Check BigTIFF signature 
     949    if ((binvalues[2] != 0x2B or binvalues[3] != 0) \ 
     950        and (binvalues[3] != 0x2B or binvalues[2] != 0)): 
     951        return 'fail' 
     952 
     953    return 'success' 
     954 
     955############################################################################### 
     956# Create a BigTIFF image implicitely (more than 4Gb) 
     957 
     958def tiff_write_31(): 
     959 
     960    drv = gdal.GetDriverByName( 'GTiff' ) 
     961    md = drv.GetMetadata() 
     962    if string.find(md['DMD_CREATIONOPTIONLIST'],'BigTIFF') == -1: 
     963        return 'skip' 
     964 
     965    ds = gdaltest.tiff_drv.Create( 'tmp/bigtiff.tif', 100000, 100000, 1 ) 
     966    ds = None 
     967 
     968    ds = gdal.Open( 'tmp/bigtiff.tif' ) 
     969    if ds is None: 
     970        return 'fail' 
     971    ds = None 
     972 
     973    fileobj = open( 'tmp/bigtiff.tif', mode='rb') 
     974    binvalues = array.array('b') 
     975    binvalues.read(fileobj, 4) 
     976    fileobj.close() 
     977 
     978    gdaltest.tiff_drv.Delete( 'tmp/bigtiff.tif' ) 
     979 
     980    # Check BigTIFF signature 
     981    if ((binvalues[2] != 0x2B or binvalues[3] != 0) \ 
     982        and (binvalues[3] != 0x2B or binvalues[2] != 0)): 
     983        return 'fail' 
    919984 
    920985    return 'success' 
     
    9551020    tiff_write_28, 
    9561021    tiff_write_29, 
     1022    tiff_write_30, 
     1023    tiff_write_31, 
    9571024    tiff_write_cleanup ] 
    9581025