1

GDALpythonバインディングを使用して特定のtiffタグ値を更新しようとしています。

たとえば、tiffinfoを使用すると、画像からタグの値を読み取ることができます。これは次のようになります。

オフセット0x8のTIFFディレクトリ(8)画像の幅:4172画像の長さ:3689タイルの幅:256タイルの長さ:256ビット/サンプル:8サンプル形式:符号なし整数圧縮スキーム:JPEGフォトメトリック解釈:YCbCrサンプル/ピクセル:3平面構成:単一画像平面タグ33550:60.000000,60.000000,0.000000タグ33922:0.000000,0.000000,0.000000,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」を別の値で更新したい。しかし、GDALpythonAPIでタグ値を更新する方法が見つかりませんでした。

私は何かを見逃しましたか、それともこれはGDAL pythonバインディングでサポートされていないだけですか?

ありがとうジエ

4

1 に答える 1

0

Python で libtiff ラッパーを見せてくれた cgohlke に感謝します。最終的に、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();
}
于 2012-04-24T06:10:14.900 に答える