当前位置: 首页>>代码示例>>C#>>正文


C# RandomAccessFileOrArray.ReadUnsignedShort方法代码示例

本文整理汇总了C#中iTextSharp.text.pdf.RandomAccessFileOrArray.ReadUnsignedShort方法的典型用法代码示例。如果您正苦于以下问题:C# RandomAccessFileOrArray.ReadUnsignedShort方法的具体用法?C# RandomAccessFileOrArray.ReadUnsignedShort怎么用?C# RandomAccessFileOrArray.ReadUnsignedShort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在iTextSharp.text.pdf.RandomAccessFileOrArray的用法示例。


在下文中一共展示了RandomAccessFileOrArray.ReadUnsignedShort方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetNumDirectories

 // Utilities
 
 /**
 * Returns the number of image directories (subimages) stored in a
 * given TIFF file, represented by a <code>SeekableStream</code>.
 */
 public static int GetNumDirectories(RandomAccessFileOrArray stream)
 {
     long pointer = stream.FilePointer; // Save stream pointer
     
     stream.Seek(0L);
     int endian = stream.ReadUnsignedShort();
     if (!IsValidEndianTag(endian)) {
         throw new ArgumentException(MessageLocalization.GetComposedMessage("bad.endianness.tag.not.0x4949.or.0x4d4d"));
     }
     bool isBigEndian = (endian == 0x4d4d);
     int magic = ReadUnsignedShort(stream, isBigEndian);
     if (magic != 42) {
         throw new ArgumentException(MessageLocalization.GetComposedMessage("bad.magic.number.should.be.42"));
     }
     
     stream.Seek(4L);
     long offset = ReadUnsignedInt(stream, isBigEndian);
     
     int numDirectories = 0;
     while (offset != 0L) {
         ++numDirectories;
         
         // EOFException means IFD was probably not properly terminated.
         try {
             stream.Seek(offset);
             int entries = ReadUnsignedShort(stream, isBigEndian);
             stream.Skip(12*entries);
             offset = ReadUnsignedInt(stream, isBigEndian);
         } catch (EndOfStreamException) {
             numDirectories--;
             break;
         }
     }
     
     stream.Seek(pointer); // Reset stream pointer
     return numDirectories;
 }
开发者ID:jagruti23,项目名称:itextsharp,代码行数:43,代码来源:TIFFDirectory.cs

示例2: ReadUnsignedShort

 private static int ReadUnsignedShort(RandomAccessFileOrArray stream,
 bool isBigEndian)
 {
     if (isBigEndian) {
         return stream.ReadUnsignedShort();
     } else {
         return stream.ReadUnsignedShortLE();
     }
 }
开发者ID:jagruti23,项目名称:itextsharp,代码行数:9,代码来源:TIFFDirectory.cs

示例3: TIFFDirectory

 /**
 * Constructs a TIFFDirectory by reading a SeekableStream.
 * The ifd_offset parameter specifies the stream offset from which
 * to begin reading; this mechanism is sometimes used to store
 * private IFDs within a TIFF file that are not part of the normal
 * sequence of IFDs.
 *
 * @param stream a SeekableStream to read from.
 * @param ifd_offset the long byte offset of the directory.
 * @param directory the index of the directory to read beyond the
 *        one at the current stream offset; zero indicates the IFD
 *        at the current offset.
 */
 public TIFFDirectory(RandomAccessFileOrArray stream, long ifd_offset, int directory)
 {
     
     long global_save_offset = stream.FilePointer;
     stream.Seek(0L);
     int endian = stream.ReadUnsignedShort();
     if (!IsValidEndianTag(endian)) {
         throw new ArgumentException(MessageLocalization.GetComposedMessage("bad.endianness.tag.not.0x4949.or.0x4d4d"));
     }
     isBigEndian = (endian == 0x4d4d);
     
     // Seek to the first IFD.
     stream.Seek(ifd_offset);
     
     // Seek to desired IFD if necessary.
     int dirNum = 0;
     while (dirNum < directory) {
         // Get the number of fields in the current IFD.
         int numEntries = ReadUnsignedShort(stream);
         
         // Skip to the next IFD offset value field.
         stream.Seek(ifd_offset + 12*numEntries);
         
         // Read the offset to the next IFD beyond this one.
         ifd_offset = ReadUnsignedInt(stream);
         
         // Seek to the next IFD.
         stream.Seek(ifd_offset);
         
         // Increment the directory.
         dirNum++;
     }
     
     Initialize(stream);
     stream.Seek(global_save_offset);
 }
开发者ID:jagruti23,项目名称:itextsharp,代码行数:49,代码来源:TIFFDirectory.cs

示例4: GetNumDirectories

 // Utilities
 
 /**
 * Returns the number of image directories (subimages) stored in a
 * given TIFF file, represented by a <code>SeekableStream</code>.
 */
 public static int GetNumDirectories(RandomAccessFileOrArray stream)
 {
     long pointer = stream.FilePointer; // Save stream pointer
     
     stream.Seek(0L);
     int endian = stream.ReadUnsignedShort();
     if (!IsValidEndianTag(endian)) {
         throw new ArgumentException("Bad endianness tag (not 0x4949 or 0x4d4d).");
     }
     bool isBigEndian = (endian == 0x4d4d);
     int magic = ReadUnsignedShort(stream, isBigEndian);
     if (magic != 42) {
         throw new
         ArgumentException("Bad magic number, should be 42.");
     }
     
     stream.Seek(4L);
     long offset = ReadUnsignedInt(stream, isBigEndian);
     
     int numDirectories = 0;
     while (offset != 0L) {
         ++numDirectories;
         
         // EOFException means IFD was probably not properly terminated.
         try {
             stream.Seek(offset);
             int entries = ReadUnsignedShort(stream, isBigEndian);
             stream.Skip(12*entries);
             offset = ReadUnsignedInt(stream, isBigEndian);
         } catch (EndOfStreamException) {
             //numDirectories--;
             break;
         }
     }
     
     stream.Seek(pointer); // Reset stream pointer
     return numDirectories;
 }
开发者ID:nicecai,项目名称:iTextSharp-4.1.6,代码行数:44,代码来源:TIFFDirectory.cs

示例5: TIFFDirectory

 /**
 * Constructs a TIFFDirectory from a SeekableStream.
 * The directory parameter specifies which directory to read from
 * the linked list present in the stream; directory 0 is normally
 * read but it is possible to store multiple images in a single
 * TIFF file by maintaing multiple directories.
 *
 * @param stream a SeekableStream to read from.
 * @param directory the index of the directory to read.
 */
 public TIFFDirectory(RandomAccessFileOrArray stream, int directory)
 {
     
     long global_save_offset = stream.FilePointer;
     long ifd_offset;
     
     // Read the TIFF header
     stream.Seek(0L);
     int endian = stream.ReadUnsignedShort();
     if (!IsValidEndianTag(endian)) {
         throw new
         ArgumentException("Bad endianness tag (not 0x4949 or 0x4d4d).");
     }
     isBigEndian = (endian == 0x4d4d);
     
     int magic = ReadUnsignedShort(stream);
     if (magic != 42) {
         throw new
         ArgumentException("Bad magic number, should be 42.");
     }
     
     // Get the initial ifd offset as an unsigned int (using a long)
     ifd_offset = ReadUnsignedInt(stream);
     
     for (int i = 0; i < directory; i++) {
         if (ifd_offset == 0L) {
             throw new
             ArgumentException("Directory number too large.");
         }
         
         stream.Seek(ifd_offset);
         int entries = ReadUnsignedShort(stream);
         stream.Skip(12*entries);
         
         ifd_offset = ReadUnsignedInt(stream);
     }
     
     stream.Seek(ifd_offset);
     Initialize(stream);
     stream.Seek(global_save_offset);
 }
开发者ID:nicecai,项目名称:iTextSharp-4.1.6,代码行数:51,代码来源:TIFFDirectory.cs


注:本文中的iTextSharp.text.pdf.RandomAccessFileOrArray.ReadUnsignedShort方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。