本文整理汇总了C#中BinarySerializer.SerializeMemoryRegion方法的典型用法代码示例。如果您正苦于以下问题:C# BinarySerializer.SerializeMemoryRegion方法的具体用法?C# BinarySerializer.SerializeMemoryRegion怎么用?C# BinarySerializer.SerializeMemoryRegion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BinarySerializer
的用法示例。
在下文中一共展示了BinarySerializer.SerializeMemoryRegion方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SaveTKTX
/// <summary>
/// Saves the specified pixel buffers in TKTX format.
/// </summary>
/// <param name="pixelBuffers">The pixel buffers.</param>
/// <param name="count">The count.</param>
/// <param name="description">The description.</param>
/// <param name="imageStream">The image stream.</param>
internal static void SaveTKTX(PixelBuffer[] pixelBuffers, int count, ImageDescription description, Stream imageStream)
{
var serializer = new BinarySerializer(imageStream, SerializerMode.Write);
var beginPosition = imageStream.Position;
// Write MagicCode for TKTX
serializer.BeginChunk(MagicCodeTKTX);
// Serialize Description
serializer.Serialize(ref description);
// Serialize Size
int size = 0;
for (int i = 0; i < count; i++)
size += pixelBuffers[i].BufferStride;
serializer.Serialize(ref size);
// Pad to align pixel buffer on 16 bytes (fixed offset at 48 bytes from the beginning of the file).
var padBuffer = new byte[OffsetBufferTKTX - (int) (imageStream.Position - beginPosition)];
if (padBuffer.Length > 0)
imageStream.Write(padBuffer, 0, padBuffer.Length);
// Write the whole pixel buffer
for (int i = 0; i < count; i++)
serializer.SerializeMemoryRegion(pixelBuffers[i].DataPointer, pixelBuffers[i].BufferStride);
serializer.EndChunk();
}