【发布时间】:2012-04-02 08:08:56
【问题描述】:
我最近从here 下载并安装了 PyLibTIFF,并一直在尝试读取平铺的 tiff 图像。
我可以完美地阅读扫描线图像,但似乎甚至找不到正确的功能来阅读瓷砖。我在我的 python 站点包文件夹中搜索了整个 libtif 目录,但没有找到任何类型的“read_tile”命令。
我基本上是在尝试从this example转码:
TIFF* tif = TIFFOpen("myfile.tif", "r");
if (tif) {
uint32 imageWidth, imageLength;
uint32 tileWidth, tileLength;
uint32 x, y;
tdata_t buf;
TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth);
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength);
TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth);
TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength);
buf = _TIFFmalloc(TIFFTileSize(tif));
for (y = 0; y < imageLength; y += tileLength)
for (x = 0; x < imageWidth; x += tileWidth)
TIFFReadTile(tif, buf, x, y, 0);
_TIFFfree(buf);
TIFFClose(tif);
到python。
到目前为止,我已经得到:
tif = TIFF.open(tif_path, 'r')
image_width = tif.GetField("ImageWidth")
image_length = tif.GetField("ImageLength")
tile_width = tif.GetField("TileWidth")
tile_length = tif.GetField("TileLength")
y = 0
while y < image_length:
x = 0
while x < image_width:
print tif.read_tile(x, y, 0)
x += tile_width
y += tile_length
tif.close()
我实际上只需要测试 tiff 是否损坏。 tif.info() 并没有帮助,因为它只是读取即使在损坏的 tif 中也是完整的文件头。
任何帮助、想法或想法将不胜感激! 谢谢!
【问题讨论】:
标签: python tiff tile corrupt libtiff