LEADTOOLS(Leadtoolsアセンブリ)

フレームを表示

RasterImageクラス








メンバ 
RasterImageクラスは、image操作と変換のための作業領域として用いられます。LEADTOOLS関数は、メモリ内のimageにアクセスするために、そして、imageの特徴を維持管理するためにこのクラスを使用します。
オブジェクトモデル
構文
'Declaration
 
<SerializableAttribute()>
Public Class RasterImage 
   Implements System.IDisposable, System.Runtime.Serialization.ISerializable 
'Usage
 
Dim instance As RasterImage
@interface LTRasterImage : NSObject<NSCopying, NSCoding>
public class RasterImage implements Serializable
function Leadtools.RasterImage()
解説

RasterImageクラスは、イメージを画素データによって定義して機能するのに用いられます。

RasterImageクラスは、メモリ内のイメージに対処するために、メソッドとプロパティを格納します。ゼロからイメージを作成するか、ディスクベースのファイルからロードするために、このクラスを使用することができます。また、LEADTOOLS for .NETの多様な他のコンポーネントスキャニングなどの操作からRasterImageオブジェクトを作成します、そして、OCR処理を行います。ツールキットの様々な部分の間で画像データを渡すとき、RasterImageクラスは使われる主なLEADTOOLSオブジェクトです。

RasterImageクラスは、画像データの個々の行またはピクセルに対処させます。このクラスは、以下のためにメソッドとプロパティも格納します:

RasterImageクラスはISerializableなインターフェースを実装して、このように標準的な.NETシリアル化をサポートします。RasterImageオブジェクトのシリアル化に関する詳細な情報と例のために、RasterImageシリアル化を参照します。

RasterImageクラスはIDisposableなインターフェースも実装します、RasterImageクラスを使用するとき、標準的な.NETがパターンを破棄することになるよう勧めます。詳細は、MSDN、IsDisposedプロパティとRasterImage.DisposedイベントでIDisposableなインターフェースドキュメンテーションを参照します。

クラスがサポートするLEADTOOLS RasterImageは、以下のピクセル当たりビットでメモリ内のイメージを保存します:1、2、3、4、5、6、7、8、12、16、24、32、38と64。16bpp imageは、カラーまたはグレースケールであるかもしれません。16ビットのグレースケール画像で作業する場合です。8ビットと12ビットのグレースケール画像もサポートされます。

RasterImageオブジェクトのデータは、未圧縮、RLE圧縮またはスーパー圧縮としてメモリ内の保存されることができます。24ビットと8ビットイメージのために使われる圧縮はロッシーです。そして、それはimageへの複数の変化が若干の視覚の損失を生じることができることを意味します。非常に圧縮ビットマップのサポートは、Document/Medical画像化版だけで利用できます。

コンベンショナルメモリで十分でないとき、RasterImageオブジェクトはディスクベースのスワップファイルでそのデータを保存することもできます。

RasterImageオブジェクトは、様々なサイズで複数ページを保持することができます。AddPageAddPagesInsertPageInsertPagesメソッドは、既存のRasterImageに新しいページを追加するのを許します。

RemovePageAt、RemovePagesとRemoveAllPagesメソッドにより、RasterImageオブジェクトから既存のページを削除できます。

ReplacePageとReplacePagesメソッドにより、RasterImageオブジェクト内の既存のページを置き換えることができます。

ペイジプロパティが現在のアクティブページを変更することができる間、PageCountプロパティはRasterImageオブジェクトにおけるページの合計数を保持します。

特に明記しない限りRasterImageオブジェクトのデータにアクセスするとき、現在のアクティブページ(ペイジプロパティによって示されるページ)がデフォルトで使われます。

RasterImageオブジェクトは、画像処理コマンドを使うとき、更新することが可能な部分を制限するのに用いられることができる関心部分値も格納します。リージョンは、AddRectangleToRegionAddEllipseToRegionなどの幾何学的形状を使用して、または、AddColorToRegionAddMaskToRegionなどのimageデータの属性で設定されることができます。

サンプル

このサンプルはディスクファイルから画像ファイルをロードして、ディスクへそれを保存する前に、画像データを処理します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Core
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Controls
Imports Leadtools.Dicom
Imports Leadtools.Drawing
Imports Leadtools.Svg

      
Public Sub RasterImageExample()
   Dim codecs As RasterCodecs = New RasterCodecs()
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
   Dim destFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_RasterImage1.bmp")
   Dim destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_RasterImage2.bmp")

   ' Load the image
   Dim srcImage As RasterImage = codecs.Load(srcFileName)

   ' Creates a new image in memory with same dimensions as the source image
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0)

   ' Copy the data from the source image to the destination image
   srcImage.Access()
   destImage.Access()

   Dim buffer As Byte() = New Byte(srcImage.BytesPerLine - 1) {}

   Dim y As Integer = 0
   Do While y < srcImage.Height
      srcImage.GetRow(y, buffer, 0, buffer.Length)
      destImage.SetRow(y, buffer, 0, buffer.Length)
      y += 1
   Loop

   destImage.Release()
   srcImage.Release()

   ' We do not need the source image anymore
   srcImage.Dispose()

   ' save the destination image
   codecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 24)

   ' perform image processing on the image

   Dim flipCmd As FlipCommand = New FlipCommand()
   flipCmd.Horizontal = False
   flipCmd.Run(destImage)

   ' save it
   codecs.Save(destImage, destFileName2, RasterImageFormat.Bmp, 24)

   ' Clean up
   destImage.Dispose()
   codecs.Dispose()
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;
using Leadtools.Dicom;
using Leadtools.Drawing;
using Leadtools.Controls;
using Leadtools.Svg;

      
public void RasterImageExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
   string destFileName1 = Path.Combine(ImagesPath.Path, "Image1_RasterImage1.bmp");
   string destFileName2 = Path.Combine(ImagesPath.Path, "Image1_RasterImage2.bmp");

   // Load the image
   RasterImage srcImage = codecs.Load(srcFileName);

   // Creates a new image in memory with same dimensions as the source image
   RasterImage destImage = new RasterImage(
      RasterMemoryFlags.Conventional,
      srcImage.Width,
      srcImage.Height,
      srcImage.BitsPerPixel,
      srcImage.Order,
      srcImage.ViewPerspective,
      srcImage.GetPalette(),
      IntPtr.Zero,
      0);

   // Copy the data from the source image to the destination image
   srcImage.Access();
   destImage.Access();

   byte[] buffer = new byte[srcImage.BytesPerLine];

   for(int y = 0; y < srcImage.Height; y++)
   {
      srcImage.GetRow(y, buffer, 0, buffer.Length);
      destImage.SetRow(y, buffer, 0, buffer.Length);
   }

   destImage.Release();
   srcImage.Release();

   // We do not need the source image anymore
   srcImage.Dispose();

   // save the destination image
   codecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 24);

   // perform image processing on the image

   FlipCommand flipCmd = new FlipCommand();
   flipCmd.Horizontal = false;
   flipCmd.Run(destImage);

   // save it
   codecs.Save(destImage, destFileName2, RasterImageFormat.Bmp, 24);

   // Clean up
   destImage.Dispose();
   codecs.Dispose();
}
RasterImageExamples.prototype.RasterImageExample = function () {
    Tools.SetLicense();
    with (Leadtools) {
        with (Leadtools.Codecs) {
            var codecs = new RasterCodecs();

            var srcFileName = "Assets\\Image1.cmp";
            var destFileName1 = "Image1_RasterImage1.bmp";
            var destFileName2 = "Image1_RasterImage2.bmp";
            var destImage;
            // Load the image
            // Load the image
            return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {

                return codecs.loadAsync(LeadStreamFactory.create(loadFile));
            })
            .then(function (srcImage) {
                console.assert(srcImage.bitsPerPixel == 24, "srcImage.bitsPerPixel == 24");

                // Creates a new image in memory with same dimensions as the source image
                destImage = new RasterImage(
                   RasterMemoryFlags.conventional,
                   srcImage.width,
                   srcImage.height,
                   srcImage.bitsPerPixel,
                   srcImage.order,
                   srcImage.viewPerspective,
                   srcImage.getPalette());

                // Copy the data from the source image to the destination image
                srcImage.accessData();
                destImage.accessData();

                var buffer = new Array(srcImage.BytesPerLine);

                for (var y = 0; y < srcImage.height; y++) {
                    var number = srcImage.getRow(y, buffer, 0, srcImage.BytesPerLine);
                    destImage.setRow(y, buffer, number, srcImage.BytesPerLine);
                }

                destImage.releaseData();
                srcImage.releaseData();

                // We do not need the source image anymore
                srcImage.close();

                // save the destination image
                return Tools.AppLocalFolder().createFileAsync(destFileName1)})
                .then(function (saveFile) {
                    return codecs.saveAsync(destImage, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, 24)
                })
                .then(function () {

                    // perform image processing on the image

                    var flipCmd = new Leadtools.ImageProcessing.FlipCommand();
                    flipCmd.horizontal = false;
                    flipCmd.run(destImage);

                    // save it
                    return Tools.AppLocalFolder().createFileAsync(destFileName2)
                })
                        .then(function (saveFile) {
                            return codecs.saveAsync(destImage, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, 24)
                        })
                        .then(function () {

                            // Clean up
                            destImage.close();
                            codecs.close();
                        });
        }
    }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;
using Leadtools.Dicom;

      
public async Task RasterImageExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   string destFileName1 = @"Image1_RasterImage1.bmp";
   string destFileName2 = @"Image1_RasterImage2.bmp";

   // Load the image
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage srcImage = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile), 24, CodecsLoadByteOrder.Bgr, 1, 1);
   Assert.IsTrue(srcImage.BitsPerPixel == 24);

   // Creates a new image in memory with same dimensions as the source image
   RasterImage destImage = new RasterImage(
      RasterMemoryFlags.Conventional,
      srcImage.Width,
      srcImage.Height,
      srcImage.BitsPerPixel,
      srcImage.Order,
      srcImage.ViewPerspective,
      srcImage.GetPalette());

   // Copy the data from the source image to the destination image
   srcImage.AccessData();
   destImage.AccessData();

   Windows.Storage.Streams.Buffer buffer = new Windows.Storage.Streams.Buffer((uint)srcImage.BytesPerLine);

   for(int y = 0; y < srcImage.Height; y++)
   {
      srcImage.GetRow(y, buffer, 0, (int)buffer.Length);
      destImage.SetRow(y, buffer, 0, (int)buffer.Length);
   }

   destImage.ReleaseData();
   srcImage.ReleaseData();

   // We do not need the source image anymore
   srcImage.Dispose();

   // save the destination image
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName1);
   await codecs.SaveAsync(destImage, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);

   // perform image processing on the image

   FlipCommand flipCmd = new FlipCommand();
   flipCmd.Horizontal = false;
   flipCmd.Run(destImage);

   // save it
   saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName2);
   await codecs.SaveAsync(destImage, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);

   // Clean up
   destImage.Dispose();
   codecs.Dispose();
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Dicom;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;
using Leadtools.Examples;
using Leadtools.Windows.Media;

public void RasterImageExample(RasterImage srcImage, Stream outputStream1, Stream outputStream2)
{
   RasterCodecs codecs = new RasterCodecs();
   // Creates a new image in memory with same dimensions as the source image
   RasterImage destImage = new RasterImage(
      RasterMemoryFlags.Conventional,
      srcImage.Width,
      srcImage.Height,
      srcImage.BitsPerPixel,
      srcImage.Order,
      srcImage.ViewPerspective,
      srcImage.GetPalette(),
      null,
      0);

   // Copy the data from the source image to the destination image
   srcImage.Access();
   destImage.Access();

   byte[] buffer = new byte[srcImage.BytesPerLine];

   for (int y = 0; y < srcImage.Height; y++)
   {
      srcImage.GetRow(y, buffer, 0, buffer.Length);
      destImage.SetRow(y, buffer, 0, buffer.Length);
   }

   destImage.Release();
   srcImage.Release();

   // We do not need the source image anymore
   srcImage.Dispose();

   // save the destination image
   codecs.Save(destImage, outputStream1, RasterImageFormat.Bmp, 0);

   // perform image processing on the image

   FlipCommand flipCmd = new FlipCommand();
   flipCmd.Horizontal = false;
   flipCmd.Run(destImage);

   // save it
   codecs.Save(destImage, outputStream2, RasterImageFormat.Bmp, 0);

   // Clean up
   destImage.Dispose();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Dicom
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Core
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Windows.Media

Public Sub RasterImageExample(ByVal srcImage As RasterImage, ByVal outputStream1 As Stream, ByVal outputStream2 As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()
   ' Creates a new image in memory with same dimensions as the source image
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), Nothing, 0)

   ' Copy the data from the source image to the destination image
   srcImage.Access()
   destImage.Access()

   Dim buffer As Byte() = New Byte(srcImage.BytesPerLine - 1){}

   Dim y As Integer = 0
   Do While y < srcImage.Height
      srcImage.GetRow(y, buffer, 0, buffer.Length)
      destImage.SetRow(y, buffer, 0, buffer.Length)
      y += 1
   Loop

   destImage.Release()
   srcImage.Release()

   ' We do not need the source image anymore
   srcImage.Dispose()

   ' save the destination image
   codecs.Save(destImage, outputStream1, RasterImageFormat.Bmp, 0)

   ' perform image processing on the image

   Dim flipCmd As FlipCommand = New FlipCommand()
   flipCmd.Horizontal = False
   flipCmd.Run(destImage)

   ' save it
   codecs.Save(destImage, outputStream2, RasterImageFormat.Bmp, 0)

   ' Clean up
   destImage.Dispose()
End Sub
必要条件

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

参照

参照

RasterImageメンバ
Leadtools名前空間
RasterImageとGDI/GDI+
RasterImageとWPF/Silverlight