LEADTOOLS(Leadtoolsアセンブリ)

フレームを表示

SetYUVData(Byte[]、Int32、Int32、RasterYUVFormat)メソッド








YUVデータを格納するバッファ。
集合操作が開始しなければならないバッファへの0から始まるインデックス。
データバッファのサイズは、バッファでをポイントしました。この値が誤っているならば、このメソッドは例外をスローします。
YUVデータフォーマットを指定します。
入力バッファからYUVデータを使用して画像データを更新します。YUVデータは、RasterImageで設定される前に、グレースケール/BGRに変換されます。
構文
'Declaration
 
Public Overloads Sub SetYUVData( _
   ByVal buffer() As Byte, _
   ByVal bufferIndex As Integer, _
   ByVal bufferCount As Integer, _
   ByVal yuvFormat As RasterYUVFormat _
) 
'Usage
 
Dim instance As RasterImage
Dim buffer() As Byte
Dim bufferIndex As Integer
Dim bufferCount As Integer
Dim yuvFormat As RasterYUVFormat
 
instance.SetYUVData(buffer, bufferIndex, bufferCount, yuvFormat)
 function Leadtools.RasterImage.SetYUVData(Byte[],Int32,Int32,RasterYUVFormat)( 
   buffer ,
   bufferIndex ,
   bufferCount ,
   yuvFormat 
)

パラメーター

バッファ
YUVデータを格納するバッファ。
bufferIndex
集合操作が開始しなければならないバッファへの0から始まるインデックス。
bufferCount
データバッファのサイズは、バッファでをポイントしました。この値が誤っているならば、このメソッドは例外をスローします。
yuvFormat
YUVデータフォーマットを指定します。
解説

この関数は、モバイル機器のカメラからリアルタイムのフレームを用いてBITMAPHANDLE構造体を塗りつぶすのを容易にするためにモバイルイメージングで使用するために主に使われるように設計されています。

関数はimageのビューの視点と方向を無視するので、それはYUVバッファの向きと一致しなければなりません。ほとんどの場合、YUVバッファは下への上であるので、ViewPerspectiveはTopLeftでなければなりません。YUVバッファが上下に反転されるならば、ViewPerspectiveはBottomLeftでなければならないので、それは保存するか、描画する前に自動的に上下に反転されます。

16~235の範囲のY値と16~240の範囲のU,V値で、YUVデータは、スタジオビデオYUVを格納しなければなりません。この範囲の外の値は、クリップされます:まるで16であるように、16以下の値はみなされます。235を上回るY値は235までクリップされます、240以上のU/V値は240までクリップされます。

ピクセルにつき唯一のサポートされたビットは、8、24と32です。

サンプル

YUVフォーマットで画像データを取得します。形式は、yuvFormatによって示されます。データは、byte配列として返されます。データはインデックス0で開始して、配列のサイズと等しいです。

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 Shared Sub SetYUVDataExample()
   Dim fileName As String = Path.Combine(Common.ImagesPath.Path, "nv21.bin")
   Using codecs As New RasterCodecs
      Using image As New RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, Nothing, 0)
         Using yuvFile As FileStream = File.OpenRead(fileName)
            Dim size As Integer = CInt(1920 * 1080 * 3 / 2)
            Dim yuvBuffer As Byte() = New Byte(size) {}
            yuvFile.Read(yuvBuffer, 0, size)

            image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21)

            codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0)

            Dim yuvBuffer2 As Byte() = New Byte(size) {}
            image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length)

            image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12)

            codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0)

            System.Diagnostics.Debug.WriteLine("Save succeeded")
         End Using
      End Using
   End Using
End Sub
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 static void SetYUVDataExample()
{
   string fileName = Path.Combine(ImagesPath.Path, "nv21.bin");
   using (RasterCodecs codecs = new RasterCodecs())
   {
      using (RasterImage image = new RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, null, 0))
      {
         using (FileStream yuvFile = File.OpenRead(fileName))
         {
            int size = 1920 * 1080 * 3 / 2;
            Byte[] yuvBuffer = new Byte[size];
            yuvFile.Read(yuvBuffer, 0, size);

            image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21);

            codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0);

            Byte[] yuvBuffer2 = new byte[size];
            image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length);

            image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12);

            codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0);

            System.Diagnostics.Debug.WriteLine("Save succeeded");
         }
      }
   }
}
必要条件

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

参照

参照

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