2012-04-20 116 views
1

我正在嘗試使用GDAL python綁定來更新某些tiff標記值。如何使用gdal python綁定來更新GeoTiff標籤?

例如,使用tiffinfo我可以讀取來自圖像標籤值,它是這樣的:

TIFF指南在偏移0x8中(8) 圖像寬度:4172圖像長度:3689 瓷磚寬度: 256瓦長度:256 比特/採樣:8 樣本格式:無符號整數 壓縮方案:JPEG 光度解讀:的YCbCr 樣品/像素:3 平面配置:單像面 標籤33550:60.000000,60.000000,0.000000 標籤33922:0.000000,0.000000,0.0 00000,588840.000000,4880460.000000,0.000000 標籤34735:1,1,0,7,1024,0,1,1,1025,0,1,1,1026,34737,22,0,2049,34737,7,22 ,2054,0,1,9102,3072,0,1,32618,3076,0,1,9001

我想用不同的值更新「標籤33922」而不保存新圖像。 但我找不到更新GDAL python API中標記值的方法。

我錯過了什麼,或者這只是在GDAL python綁定中不支持?

感謝 傑

回答

0

感謝cgohlke用於顯示我在Python中的libtiff包裝。我最終使用LibTiff.Net API編寫了C#代碼。它看起來像這樣:

using (Tiff image = Tiff.Open(filePaths[i], "a")) 
{   
    image.SetDirectory(0); 

    // read auto-registered tag 33922 
    FieldValue[] value = image.GetField((TiffTag)33922); 
    int count = value[0].ToInt(); 
    double[] array = value[1].ToDoubleArray(); 
    System.Console.Out.WriteLine("Tag 33922 value(s) are as follows:"); 
    System.Console.Out.WriteLine(string.Join(",", array)); 

    double[] newarray = { 0.5, 0.5, 0, array[3], array[4], array[5] }; 
    image.SetField((TiffTag)33922, 6, newarray); 

    System.Console.Out.WriteLine("Tag 33922 value(s) have been updated to:"); 
    System.Console.Out.WriteLine(string.Join(",", newarray)); 

    // Write the information to the file 
    image.CheckpointDirectory(); 
} 
+0

任何線索找到相同的解決方案,但使用Python Gdal庫嗎? – 2014-04-23 16:21:09