Ejemplo n.º 1
0
        private void WriteQuantizationTables(ref JpegWriter writer)
        {
            List <JpegQuantizationTable>?quantizationTables = _quantizationTables;

            if (quantizationTables is null)
            {
                throw new InvalidOperationException();
            }

            writer.WriteMarker(JpegMarker.DefineQuantizationTable);

            ushort totalByteCount = 0;

            foreach (JpegQuantizationTable table in quantizationTables)
            {
                totalByteCount += table.BytesRequired;
            }

            writer.WriteLength(totalByteCount);

            foreach (JpegQuantizationTable table in quantizationTables)
            {
                Span <byte> buffer = writer.GetSpan(table.BytesRequired);
                table.TryWrite(buffer, out int bytesWritten);
                writer.Advance(bytesWritten);
            }
        }