Function writePng

Encode non-interlaced 8/16-bit gray, RGB and alpha PNG into a sink.

ImageWriteResult writePng(
  transport.source.ByteSink sink,
  imageio.png_write.PngWriteInfo info,
  scope const(ubyte)[] source,
  ulong rowStride,
  ImageWriteOptions options = ImageWriteOptions(MetadataPolicy.rejectLoss, 18446744073709551615LU)
) @safe;

Indexed and packed samples are supported; interlaced input/output and unrecognised ancillary metadata remain explicit unsupported cases.