LEADTOOLS画像ファイルサポート(Leadtools.Codecsアセンブリ)

フレームを表示

EnumTags(String、Int32)メソッド








入力ファイル名を格納しているString
タグを列挙するページの1から始まるインデックス。
ファイル内のすべてのタグを列挙します。
構文
public void EnumTags( 
   string fileName,
   int pageNumber
)
'Declaration
 
Public Overloads Sub EnumTags( _
   ByVal fileName As String, _
   ByVal pageNumber As Integer _
) 
'Usage
 
Dim instance As RasterCodecs
Dim fileName As String
Dim pageNumber As Integer
 
instance.EnumTags(fileName, pageNumber)
public void EnumTags( 
   string fileName,
   int pageNumber
)
- (BOOL)enumerateTagsInFile:(NSString *)file 
                 pageNumber:(NSInteger)pageNumber 
                   callback:(void (^)(LTCodecsEnumTagsEventArgs *tagInfo))handler 
                      error:(NSError **)error
            
 function Leadtools.Codecs.RasterCodecs.EnumTags(String,Int32)( 
   fileName ,
   pageNumber 
)
public:
void EnumTags( 
   String^ fileName,
   int pageNumber
) 

パラメーター

fileName
入力ファイル名を格納しているString
pageNumber
タグを列挙するページの1から始まるインデックス。
解説

このメソッドは、ファイルで見つけられる各々のタグのために、TagFoundイベントを発生します。

現時点では、TIFFとExifファイルだけは、タグを格納します。

マルチページTIFFファイルについては、特定のページからタグを列挙することができます。列挙されるタグを持っているページ番号を指定します。

このメソッドは、標準的なTIFFタグとユーザータグを列挙します。規格基準TIFFタグは、より小さい32767です。ユーザーTIFFタグは、通常32768と65535の間にあります。

ストリーム内で保存されるタグを列挙するために、EnumTagsを使います。

タグ値を読むために、ReadTagを使います、そして、すべてのタグをファイルで読むために、ReadTagsを使います。

TIFFタグについての一般情報については、TIFFコメントとタグの実装を参照します。

TagFoundイベントの中にタグを削除するDeleteTagを使おうとしません。列挙するタグを削除したいならば、リストにタグを追加するために、このイベントを使います。EnumTagsから返ると、即座に、リストからすべてのタグを削除することができます。

特定のファイルフォーマットがタグをサポートするかどうか決定するために、TagsSupportedを使うことができます。

サンプル

このサンプルは与えることファイルですべてのタグを示して、読んで、そして、もう一つのファイルに保存します

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg

Private tagsFileName As String
Private myTags As RasterCollection(Of RasterTagMetadata)
Private Sub EnumTagsExample(ByVal srcFileName As String, ByVal destFileName As String)
   Dim codecs As RasterCodecs = New RasterCodecs()

   tagsFileName = srcFileName
   myTags = New RasterCollection(Of RasterTagMetadata)()

   AddHandler codecs.TagFound, AddressOf codecs_TagFound
   codecs.EnumTags(srcFileName, 1)
   RemoveHandler codecs.TagFound, AddressOf codecs_TagFound

   ' We read all the tags now, save them to the file
   Console.WriteLine("{0} tags read, saving them to the destination file", myTags.Count)
   codecs.WriteTags(destFileName, 1, myTags)

   ' Clean up
   codecs.Dispose()
End Sub

Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs)
   Console.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType)

   ' Read this tag from the file and add it to our collection
   Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs)
   Dim tag As RasterTagMetadata = codecs.ReadTag(tagsFileName, 1, e.Id)
   myTags.Add(tag)
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;

string tagsFileName;
RasterCollection<RasterTagMetadata> myTags;
void EnumTagsExample(string srcFileName, string destFileName)
{
   RasterCodecs codecs = new RasterCodecs();

   tagsFileName = srcFileName;
   myTags = new RasterCollection<RasterTagMetadata>();

   codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
   codecs.EnumTags(srcFileName, 1);
   codecs.TagFound -= new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);

   // We read all the tags now, save them to the file
   Console.WriteLine("{0} tags read, saving them to the destination file", myTags.Count);
   codecs.WriteTags(destFileName, 1, myTags);

   // Clean up
   codecs.Dispose();
}

void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
   Console.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType);

   // Read this tag from the file and add it to our collection
   RasterCodecs codecs = sender as RasterCodecs;
   RasterTagMetadata tag = codecs.ReadTag(tagsFileName, 1, e.Id);
   myTags.Add(tag);
}
RasterCodecsExamples.prototype.EnumTagsExample_Runner = function ( )
{
   Tools.SetLicense ( ) ;
   with ( Leadtools ) { with ( Leadtools.Codecs ) { 
      var srcImage;
      var codecs = new RasterCodecs();
      var tifFileWithTags = "Assets\\3polars.tif";
      // save a GEO TIFF file first, b/c the example needs one
      var destFileName = "WriteTags.tif";
      return Tools.AppLocalFolder().createFileAsync(destFileName).then ( function ( saveFile ) {
         srcImage = RasterImage.create(100, 100, 24, 96, RasterColorHelper.black);
         return codecs.saveAsync(srcImage, LeadStreamFactory.create(saveFile), RasterImageFormat.tif, 24)})
      .then ( function ( ) {
         srcImage.close();
         codecs.close();

         return EnumTagsExample(tifFileWithTags, destFileName);
      });
   }
   }
}

   var tagsFileName;
   var myTags;

   function EnumTagsExample(srcFileName, destFileName) {
      Tools.SetLicense();
      with (Leadtools) {
         with (Leadtools.Codecs) {
            var codecs = new RasterCodecs();
            Leadtools.RasterSupport.initialize();
            codecs.eventsDispatchMode = Leadtools.LeadEventsDispatchMode.useCoreDispatcher;
            codecs.addEventListener("tagfound", codecs_TagFound);
            
            tagsFileName = srcFileName;
            myTags = new Array();

            return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {


               
               return codecs.enumTagsAsync(LeadStreamFactory.create(loadFile), 1)
            })
               .then(function () {
                  codecs.removeEventListener("tagfound", codecs_TagFound);

                  // We read all the tags now, save them to the file
                  console.info(myTags.length, " tags read, saving them to the destination file");
                  return Tools.AppLocalFolder().createFileAsync(destFileName, Windows.Storage.CreationCollisionOption.openIfExists)
               })
               .then(function (saveFile) {
                  return codecs.writeTagsAsync(LeadStreamFactory.create(saveFile), 1, myTags)
               })
               .then(function () {
                  // Clean up
                  codecs.close();
               });
         }
      }
   }

function codecs_TagFound(e) {
   console.info("Tag: Id=" + e.id + ", Count=" + e.count + " Type=", e.metadataType);

   // Read this tag from the file and add it to our collection
   var codecs = e.target;
   return Tools.AppInstallFolder().getFileAsync(tagsFileName).then(function (loadFile) {
      return codecs.readTagAsync(Leadtools.LeadStreamFactory.create(loadFile), 1, e.id)
   })
      .then(function (tag) {
         myTags.push(tag);
      });
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

string tagsFileName;
List<RasterTagMetadata> myTags;
async Task EnumTagsExample(string srcFileName, string destFileName)
{
   RasterCodecs codecs = new RasterCodecs();

   try
   {
      tagsFileName = srcFileName;
      myTags = new List<RasterTagMetadata>();

      StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);

      codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
      await codecs.EnumTagsAsync(LeadStreamFactory.Create(loadFile), 1);
      codecs.TagFound -= new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);

      // We read all the tags now, save them to the file
      Debug.WriteLine("{0} tags read, saving them to the destination file", myTags.Count);
      StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName, CreationCollisionOption.OpenIfExists);
      await codecs.WriteTagsAsync(LeadStreamFactory.Create(saveFile), 1, myTags);
   }
   catch (Exception ex)
   {
      string error = "";
      RasterException rasterException = RasterException.FromHResult(ex.HResult);
      if (rasterException != null)
         error = rasterException.Message;
      else
         error = ex.Message;
      Debug.WriteLine(error);
      Assert.Fail(error);
   }

   // Clean up
   codecs.Dispose();
}

async void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
   Debug.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType);

   // Read this tag from the file and add it to our collection
   RasterCodecs codecs = sender as RasterCodecs;
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(tagsFileName);
   RasterTagMetadata tag = await codecs.ReadTagAsync(LeadStreamFactory.Create(loadFile), 1, e.Id);
   myTags.Add(tag);
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Windows.Media;

Stream tagsStream;
RasterCollection<RasterTagMetadata> myTags;
void EnumTagsExample(Stream inStreamTif, Stream outStreamTif)
{
   RasterCodecs codecs = new RasterCodecs();

   tagsStream = inStreamTif;
   myTags = new RasterCollection<RasterTagMetadata>();

   codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
   codecs.EnumTags(inStreamTif, 1);
   codecs.TagFound -= new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);

   // We read all the tags now, save them to the file
   Debug.WriteLine("{0} tags read, saving them to the destination file", myTags.Count);
   codecs.WriteTags(outStreamTif, 1, myTags);
}

void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
   Debug.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType);

   // Read this tag from the file and add it to our collection
   RasterCodecs codecs = sender as RasterCodecs;
   RasterTagMetadata tag = codecs.ReadTag(tagsStream, 1, e.Id);
   myTags.Add(tag);
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Windows.Media

Private tagsStream As Stream
Private myTags As RasterCollection(Of RasterTagMetadata)
Private Sub EnumTagsExample(ByVal inStreamTif As Stream, ByVal outStreamTif As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()

   tagsStream = inStreamTif
   myTags = New RasterCollection(Of RasterTagMetadata)()

   AddHandler codecs.TagFound, AddressOf codecs_TagFound
   codecs.EnumTags(inStreamTif, 1)
   RemoveHandler codecs.TagFound, AddressOf codecs_TagFound

   ' We read all the tags now, save them to the file
   Debug.WriteLine("{0} tags read, saving them to the destination file", myTags.Count)
   codecs.WriteTags(outStreamTif, 1, myTags)
End Sub

Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs)
   Debug.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType)

   ' Read this tag from the file and add it to our collection
   Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs)
   Dim tag As RasterTagMetadata = codecs.ReadTag(tagsStream, 1, e.Id)
   myTags.Add(tag)
End Sub
必要条件

ターゲットプラットホーム

参照

参照

RasterCodecsクラス
RasterCodecsメンバ
オーバーロードリスト