public enum RasterYUVFormat
typedef NS_ENUM(NSInteger, LTRasterYUVFormat) {
LTRasterYUVFormatYV12,
LTRasterYUVFormatNV12,
LTRasterYUVFormatNV21,
LTRasterYUVFormatYUY2
};
public final class RasterYUVFormat
extends java.lang.Enum<RasterYUVFormat>
public enum class RasterYUVFormat
class RasterYUVFormat(Enum):
YV12 = 0
NV12 = 1
NV21 = 2
YUY2 = 3
Value | Member | Description |
---|---|---|
0 | YV12 | Planar Y, U, V data using 4:1:1 (aka 4:2:0) subsampling. The U and V planes are half the width and height of the Y plane. The Y plane is followed immediately by the U (Cb) plane, which is followed immediately by the V (Cr) plane. The YUV data is 12 bits/pixel (each 2x2 pixels are described by 6 bytes). The image width and height must be multiple of 2. The size of the YUV data is width * height * 3 / 2. |
1 | NV12 | A Y plane followed by interleaved plane of UV data. There are half as many U and V samples as Y samples in both width and height. In other words, for each 2x2 square of Y pixels, there is only one corresponding U, V pair. The YUV data is 12 bits/pixel (each 2x2 pixels are described by 6 bytes). The image width and height must be multiple of 2. The size of the YUV data is width * height * 3 / 2. |
2 | NV21 | A Y plane followed by interleaved plane of VU data. Similar to NV12 data, except that the order of UV samples is reversed. The YUV data is 12 bits/pixel (each 2x2 pixels are described by 6 bytes). The image width and height must be multiple of 2. The size of the YUV data is width * height * 3 / 2. |
3 | YUY2 | Interleaved 4:2:2 YUYV data. Each two horizontal pixels have the same U and V values. The YUV data is 16 bits/pixel (each 2 pixels are described by 4 bytes). The image width must be a multiple of 2. The size of the YUV data is width * height * 2. |
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(LEAD_VARS.ImagesDir, "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(LEAD_VARS.ImagesDir, "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(LEAD_VARS.ImagesDir, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0);
System.Diagnostics.Debug.WriteLine("Save succeeded");
}
}
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document