LEADTOOLS ナレッジベース

[Document Imagingファミリー][RasterImageViewer] 非自動アノテーションオブジェクトを画像に描画するには?

AnnContainerクラスのDrawメソッドを使用してRasterImageオブジェクトに描画することで実現できます。

サンプルコード(VB.NET)

Private tempImage As RasterImage

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' RasterCodecsオブジェクトを初期化します。
    Dim codecs = New RasterCodecs

    ' メイン画像をロードします。
    tempImage = codecs.Load("sample1.cmp")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' コンテナを設定します。
    Dim container As New AnnContainer
    Dim containerBounds As New AnnRectangle(0, 0, tempImage.Width, tempImage.Height)
    container.Bounds = containerBounds

    ' 新しいAnnCodecsクラスを作成します。
    Dim anncodecs As New AnnCodecs()
    ' コンテナにオブジェクトを読み込みます。事前にSaveAnnotationで保存したアノテーションファイルを読み込みます。
    anncodecs.Load("sample1.ann", container, 1)

    ' 画像にアノテーションを反映します。
    container.Draw(tempImage)

    Dim codecs = New RasterCodecs
    codecs.Save(tempImage, "drawresult.png", RasterImageFormat.Png, 0)
End Sub

サンプルコード(C#)

private RasterImage tempImage;

private void Form1_Load(object sender, EventArgs e)
{
    // RasterCodecsオブジェクトを初期化します。
    RasterCodecs codecs = new RasterCodecs();

    // メイン画像をロードします。
    tempImage = codecs.Load(@"sample1.cmp");
}

private void button1_Click(object sender, EventArgs e)
{
    // コンテナを設定します。
    AnnContainer container = new AnnContainer();
    AnnRectangle containerBounds = new AnnRectangle(0, 0, tempImage.Width, tempImage.Height);
    container.Bounds = containerBounds;

    // 新しいAnnCodecsクラスを作成します。
    AnnCodecs anncodecs = new AnnCodecs();
    // コンテナにオブジェクトを読み込みます。事前にSaveAnnotationで保存したアノテーションファイルを読み込みます。
    anncodecs.Load(@"sample1.ann", container, 1);

    // 画像にアノテーションを反映します。
    container.Draw(tempImage);

    RasterCodecs codecs = new RasterCodecs();
    codecs.Save(tempImage, @"drawresult.png", RasterImageFormat.Png, 0);
}

実際の動作は.NETコントロール チュートリアルの「DrawAnnotationNoDisplay」をご覧ください。

 

関連情報

0 コメント

記事コメントは受け付けていません。