Exemple #1
0
        public static Com.Drew.Metadata.Metadata ReadMetadata([NotNull] InputStream inputStream)
        {
            // TIFF processing requires random access, as directories can be scattered throughout the byte sequence.
            // InputStream does not support seeking backwards, so we wrap it with RandomAccessStreamReader, which
            // buffers data from the stream as we seek forward.
            Com.Drew.Metadata.Metadata metadata = new Com.Drew.Metadata.Metadata();
            ExifTiffHandler            handler  = new ExifTiffHandler(metadata, false);

            new TiffReader().ProcessTiff(new RandomAccessStreamReader(inputStream), handler, 0);
            return(metadata);
        }
        /// <exception cref="System.IO.IOException"/>
        /// <exception cref="TiffProcessingException"/>
        public static DirectoryList ReadMetadata(Stream stream)
        {
            // TIFF processing requires random access, as directories can be scattered throughout the byte sequence.
            // Stream does not support seeking backwards, so we wrap it with IndexedCapturingReader, which
            // buffers data from the stream as we seek forward.
            var directories = new List <Directory>();

            var handler = new ExifTiffHandler(directories);

            TiffReader.ProcessTiff(new IndexedCapturingReader(stream), handler);

            return(directories);
        }
        /// <exception cref="System.IO.IOException"/>
        /// <exception cref="TiffProcessingException"/>
        public static DirectoryList ReadMetadata(string filePath)
        {
            var directories = new List <Directory>();

            using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.RandomAccess))
            {
                var handler = new ExifTiffHandler(directories);
                TiffReader.ProcessTiff(new IndexedSeekingReader(stream), handler);
            }

            directories.Add(new FileMetadataReader().Read(filePath));

            return(directories);
        }
Exemple #4
0
        public static Com.Drew.Metadata.Metadata ReadMetadata([NotNull] FilePath file)
        {
            Com.Drew.Metadata.Metadata metadata         = new Com.Drew.Metadata.Metadata();
            RandomAccessFile           randomAccessFile = new RandomAccessFile(file, "r");

            try
            {
                ExifTiffHandler handler = new ExifTiffHandler(metadata, false);
                new TiffReader().ProcessTiff(new RandomAccessFileReader(randomAccessFile), handler, 0);
            }
            finally
            {
                randomAccessFile.Close();
            }
            new FileMetadataReader().Read(file, metadata);
            return(metadata);
        }