/// <inheritdoc cref="Load"/> public byte[] Save(IEnumerable <Color> colors, EncodingSaveContext saveContext) { var values = colors.AsParallel().AsOrdered() .WithDegreeOfParallelism(saveContext.TaskCount) .Select(c => _descriptor.GetValue(c)); var bits = saveContext.Size.Width * saveContext.Size.Height * BitsPerValue; var buffer = new byte[bits / 8 + (bits % 8 > 0 ? 1 : 0)]; _writeValuesDelegate(values, buffer); return(buffer); }
/// <inheritdoc cref="Load"/> public byte[] Save(IEnumerable <Color> colors, EncodingSaveContext saveContext) { var ms = new MemoryStream(); using var bw = new BinaryWriterX(ms, _byteOrder, _bitOrder, 1); var values = colors.AsParallel().AsOrdered() .WithDegreeOfParallelism(saveContext.TaskCount) .Select(c => _descriptor.GetValue(c)); foreach (var value in values) { _writeValueDelegate(bw, value); } return(ms.ToArray()); }
private ushort FromRgb565ToRgb555(ushort color0) { return((ushort)Rgb555.GetValue(Rgb565.GetColor(color0))); }