public static void Main()
        {
            // Register the extender callback
            // It's a good idea to keep track of the previous tag extender (if any) so that we can call it
            // from our extender allowing a chain of customizations to take effect.
            m_parentExtender = Tiff.SetTagExtender(TagExtender);

            File.Copy(@"Sample Data\dummy.tif", @"Sample Data\ToBeModifed.tif", true);

            string existingTiffName = @"Sample Data\ToBeModifed.tif";

            using (Tiff image = Tiff.Open(existingTiffName, "a"))
            {
                // we should rewind to first directory (first image) because of append mode
                image.SetDirectory(0);

                // set the custom tag
                string value = "<GDALMetadata>\n<Item name=\"IMG_GUID\">" +
                               "817C0168-0688-45CD-B799-CF8C4DE9AB2B</Item>\n<Item" +
                               " name=\"LAYER_TYPE\" sample=\"0\">athematic</Item>\n</GDALMetadata>";
                image.SetField(TIFFTAG_GDAL_METADATA, value);

                // rewrites directory saving new tag
                image.CheckpointDirectory();
            }

            // restore previous tag extender
            Tiff.SetTagExtender(m_parentExtender);
        }
 public MainWindow()
 {
     InitializeComponent();
     // Register the custom tag handler
     Tiff.TiffExtendProc extender = TagExtender;
     m_parentExtender = Tiff.SetTagExtender(extender);
 }
Beispiel #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="fileName">GeoTiff file to manage</param>
        public TIFFimage(string fileName)
        {
            Width           = 0;
            Height          = 0;
            SamplesPerPixel = 0;
            BitsPerSample   = 0;
            Format          = SampleFormat.VOID;
            FormatString    = "";

            OriginX    = 0;
            OriginY    = 0;
            PixelSizeX = 0;
            PixelSizeY = 0;

            Error = "";

            m_parentExtender = Tiff.SetTagExtender(TagExtender);

            using (Image = Tiff.Open(fileName, "r"))
            {
                if (Image == null)
                {
                    Error = $"Impossibile leggere il file {fileName}";
                    return;
                }
                getImageInfo();
                AllTags = getAllTags();
                readBuffer();
                Image.Close();
            }
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            // Register the custom tag handler
            Tiff.TiffExtendProc extender = TagExtender;
            m_parentExtender = Tiff.SetTagExtender(extender);

            //testAdobeJPG();
            //testCRIJPG();
            //testAdobeJPGEncode();
            //testWriteCRIJpegIntoDNG();
            testTileSizeEncode(args.Length > 0 ? args[0] : "");
        }
Beispiel #5
0
        public static void Main()
        {
            // Define an image
            byte[] buffer = new byte[25 * 144];

            // Register the extender callback
            // It's a good idea to keep track of the previous tag extender (if any) so that we can call it
            // from our extender allowing a chain of customizations to take effect.
            m_parentExtender = Tiff.SetTagExtender(TagExtender);

            string outputFileName = writeTiffWithCustomTags(buffer);

            readCustomTags(outputFileName);

            // restore previous tag extender
            Tiff.SetTagExtender(m_parentExtender);
        }
Beispiel #6
0
        private static void AddTag(string dir, string value)
        {
            // Register the extender callback
            m_parentExtender = Tiff.SetTagExtender(TagExtender);

            using (Tiff image = Tiff.Open(dir, "a"))
            {
                image.SetDirectory((short)(image.NumberOfDirectories() - 1));
                // we should rewind to first directory (first image) because of append mode

                // set the custom tag
                image.SetField(TIFFTAG_CellTool_METADATA, value);

                // rewrites directory saving new tag
                image.CheckpointDirectory();
            }

            // restore previous tag extender
            Tiff.SetTagExtender(m_parentExtender);
        }
Beispiel #7
0
        public void ReadWriteCustomTags()
        {
            // Define an image
            byte[] buffer = new byte[25 * 144];

            // Register the custom tag handler
            Tiff.TiffExtendProc extender = TagExtender;
            m_parentExtender = Tiff.SetTagExtender(extender);

            string outputFileName = "output.tif";
            Tiff image = Tiff.Open(outputFileName, "w");

            // We need to set some values for basic tags before we can add any data
            image.SetField(TiffTag.IMAGEWIDTH, 25 * 8);
            image.SetField(TiffTag.IMAGELENGTH, 144);
            image.SetField(TiffTag.BITSPERSAMPLE, 1);
            image.SetField(TiffTag.SAMPLESPERPIXEL, 1);
            image.SetField(TiffTag.ROWSPERSTRIP, 144);

            image.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX4);
            image.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISWHITE);
            image.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB);
            image.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);

            image.SetField(TiffTag.XRESOLUTION, 150.0);
            image.SetField(TiffTag.YRESOLUTION, 150.0);
            image.SetField(TiffTag.RESOLUTIONUNIT, ResUnit.INCH);

            // set custom tags

            string value = "Tag contents";
            image.SetField(TIFFTAG_ASCIITAG, value);

            short[] shorts = { 263, 264 };
            image.SetField(TIFFTAG_SHORTTAG, 2, shorts);

            int[] longs = { 117, 118 };
            image.SetField(TIFFTAG_LONGTAG, 2, longs);

            float[] rationals = { 0.333333f, 0.444444f };
            image.SetField(TIFFTAG_RATIONALTAG, 2, rationals);

            float[] floats = { 0.666666f, 0.777777f };
            image.SetField(TIFFTAG_FLOATTAG, 2, floats);

            double[] doubles = { 0.1234567, 0.7654321 };
            image.SetField(TIFFTAG_DOUBLETAG, 2, doubles);

            byte[] bytes = { 89, 90 };
            image.SetField(TIFFTAG_BYTETAG, 2, bytes);

            int ifd_offset = 1234567890;
            image.SetField(TIFFTAG_IFDTAG, ifd_offset);

            // Write the information to the file
            image.WriteEncodedStrip(0, buffer, 25 * 144);

            // Close the file
            image.Dispose();

            // Now open that TIFF back and read new tags
            image = Tiff.Open(outputFileName, "r");
            FieldValue[] res = image.GetField(TIFFTAG_ASCIITAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(1, res.Length);
            Assert.AreEqual(value, res[0].ToString());

            res = image.GetField(TIFFTAG_SHORTTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(shorts, res[1].ToShortArray());

            res = image.GetField(TIFFTAG_LONGTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(longs, res[1].ToIntArray());

            res = image.GetField(TIFFTAG_RATIONALTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(rationals, res[1].ToFloatArray());

            res = image.GetField(TIFFTAG_FLOATTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(floats, res[1].ToFloatArray());

            res = image.GetField(TIFFTAG_DOUBLETAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(doubles, res[1].ToDoubleArray());

            res = image.GetField(TIFFTAG_BYTETAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(bytes, res[1].ToByteArray());

            res = image.GetField(TIFFTAG_IFDTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(1, res.Length);
            Assert.AreEqual(ifd_offset, res[0].ToInt());

            image.Dispose();

            Tiff.SetTagExtender(m_parentExtender);
        }
Beispiel #8
0
        public void ReadWriteCustomTags()
        {
            // Define an image
            byte[] buffer = new byte[25 * 144];

            // Register the custom tag handler
            Tiff.TiffExtendProc extender = TagExtender;
            m_parentExtender = Tiff.SetTagExtender(extender);

            string outputFileName = "output.tif";
            Tiff   image          = Tiff.Open(outputFileName, "w");

            // We need to set some values for basic tags before we can add any data
            image.SetField(TiffTag.IMAGEWIDTH, 25 * 8);
            image.SetField(TiffTag.IMAGELENGTH, 144);
            image.SetField(TiffTag.BITSPERSAMPLE, 1);
            image.SetField(TiffTag.SAMPLESPERPIXEL, 1);
            image.SetField(TiffTag.ROWSPERSTRIP, 144);

            image.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX4);
            image.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISWHITE);
            image.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB);
            image.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);

            image.SetField(TiffTag.XRESOLUTION, 150.0);
            image.SetField(TiffTag.YRESOLUTION, 150.0);
            image.SetField(TiffTag.RESOLUTIONUNIT, ResUnit.INCH);

            // set custom tags

            string value = "Tag contents";

            image.SetField(TIFFTAG_ASCIITAG, value);

            short[] shorts = { 263, 264 };
            image.SetField(TIFFTAG_SHORTTAG, 2, shorts);

            int[] longs = { 117, 118 };
            image.SetField(TIFFTAG_LONGTAG, 2, longs);

            float[] rationals = { 0.333333f, 0.444444f };
            image.SetField(TIFFTAG_RATIONALTAG, 2, rationals);

            float[] floats = { 0.666666f, 0.777777f };
            image.SetField(TIFFTAG_FLOATTAG, 2, floats);

            double[] doubles = { 0.1234567, 0.7654321 };
            image.SetField(TIFFTAG_DOUBLETAG, 2, doubles);

            byte[] bytes = { 89, 90 };
            image.SetField(TIFFTAG_BYTETAG, 2, bytes);

            int ifd_offset = 1234567890;

            image.SetField(TIFFTAG_IFDTAG, ifd_offset);

            // Write the information to the file
            image.WriteEncodedStrip(0, buffer, 25 * 144);

            // Close the file
            image.Dispose();

            // Now open that TIFF back and read new tags
            image = Tiff.Open(outputFileName, "r");
            FieldValue[] res = image.GetField(TIFFTAG_ASCIITAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(1, res.Length);
            Assert.AreEqual(value, res[0].ToString());

            res = image.GetField(TIFFTAG_SHORTTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(shorts, res[1].ToShortArray());

            res = image.GetField(TIFFTAG_LONGTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(longs, res[1].ToIntArray());

            res = image.GetField(TIFFTAG_RATIONALTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(rationals, res[1].ToFloatArray());

            res = image.GetField(TIFFTAG_FLOATTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(floats, res[1].ToFloatArray());

            res = image.GetField(TIFFTAG_DOUBLETAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(doubles, res[1].ToDoubleArray());

            res = image.GetField(TIFFTAG_BYTETAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(2, res.Length);
            Assert.AreEqual(2, res[0].ToInt());
            Assert.AreEqual(bytes, res[1].ToByteArray());

            res = image.GetField(TIFFTAG_IFDTAG);
            Assert.IsNotNull(res);
            Assert.AreEqual(1, res.Length);
            Assert.AreEqual(ifd_offset, res[0].ToInt());

            image.Dispose();

            Tiff.SetTagExtender(m_parentExtender);
        }