public MergeFieldInfo ( |
||
info | The array of |
|
count | int | The number of items to use from the |
Résultat | void |
public void TagExtender(Tiff tif) { TiffFieldInfo[] tiffFieldInfo = { new TiffFieldInfo(TIFFTAG_ASCIITAG, -1, -1, TiffType.ASCII, FieldBit.Custom, true, false, "MyTag"), new TiffFieldInfo(TIFFTAG_SHORTTAG, 2, 2, TiffType.SHORT, FieldBit.Custom, false, true, "ShortTag"), new TiffFieldInfo(TIFFTAG_LONGTAG, 2, 2, TiffType.LONG, FieldBit.Custom, false, true, "LongTag"), new TiffFieldInfo(TIFFTAG_RATIONALTAG, 2, 2, TiffType.RATIONAL, FieldBit.Custom, false, true, "RationalTag"), new TiffFieldInfo(TIFFTAG_FLOATTAG, 2, 2, TiffType.FLOAT, FieldBit.Custom, false, true, "FloatTag"), new TiffFieldInfo(TIFFTAG_DOUBLETAG, 2, 2, TiffType.DOUBLE, FieldBit.Custom, false, true, "DoubleTag"), new TiffFieldInfo(TIFFTAG_BYTETAG, 2, 2, TiffType.BYTE, FieldBit.Custom, false, true, "ByteTag"), new TiffFieldInfo(TIFFTAG_IFDTAG, 1, 1, TiffType.IFD, FieldBit.Custom, false, false, "IfdTag"), }; tif.MergeFieldInfo(tiffFieldInfo, tiffFieldInfo.Length); if (m_parentExtender != null) m_parentExtender(tif); }
public TiffGrid(string filename, string NewFileName) { ValuesToWrite = new Dictionary<int, Dictionary<int, double>>(); tiff_org = BitMiracle.LibTiff.Classic.Tiff.Open(Path.GetFullPath(filename), "r"); tiff = BitMiracle.LibTiff.Classic.Tiff.Open(Path.GetFullPath(NewFileName), "w"); foreach (TiffTag enu in Enum.GetValues(typeof(TiffTag))) { var val = tiff_org.GetField(enu); if (val != null & enu != TiffTag.EXTRASAMPLES) tiff.SetField(enu, val[0]); } for (int i = 0; i < tiff_org.GetTagListCount(); i++) { int k = tiff_org.GetTagListEntry(i); var ff = tiff_org.FindFieldInfo((TiffTag)k, TiffType.ANY); tiff.MergeFieldInfo(new TiffFieldInfo[] { ff }, 1); var val = tiff_org.GetField((TiffTag)tiff_org.GetTagListEntry(i)); tiff.SetField((TiffTag)k, val[0], val[1]); } var val2 = tiff_org.GetField((TiffTag)33922)[1].ToDoubleArray(); XOrigin = val2[3]; YOrigin = val2[4]; //Upper basegrid assumes Lower val2 = tiff_org.GetField((TiffTag)33550)[1].ToDoubleArray(); GridSize = val2[0]; GridSize = val2[1]; NumberOfColumns = tiff_org.GetField(TiffTag.IMAGEWIDTH)[0].ToInt(); NumberOfRows = tiff_org.GetField(TiffTag.IMAGELENGTH)[0].ToInt(); //Shift YOrigin to lower left YOrigin -= GridSize * NumberOfRows; scanline = new byte[tiff_org.ScanlineSize()]; bits = scanline.Count() / NumberOfColumns; ScanLineCache = new Dictionary<int, byte[]>(); }
// Helper methods private static void TagExtender(Tiff tif) { TiffFieldInfo[] tiffFieldInfo = new TiffFieldInfo[1]; tiffFieldInfo[0] = new TiffFieldInfo((TiffTag)TagToWrite, -1, -1, TiffType.ASCII, FieldBit.Custom, true, false, "Tag." + TagToWrite); tif.MergeFieldInfo(tiffFieldInfo, tiffFieldInfo.Length); }