async function* plotSliceExt(size, description, values, widthIndex, heightIndex, planeIndex, sliceIndex, indexFn) {
const extents = [description.xExtent, description.yExtent, description.zExtent]
const dataAspect = extents[heightIndex] / extents[widthIndex];
const width = (size / dataAspect) / Math.abs(description.scale[widthIndex]);
const ctx = DOM.context2d(width, size);
const image = await createSliceImage(ctx, values, extents[widthIndex], extents[heightIndex], sliceIndex, extents, indexFn);
ctx.drawImage(image, 0, 0, width * Math.abs(description.scale[heightIndex]), size);
const info = "Image " + (sliceIndex + 1) + "/" + (extents[planeIndex]);
ctx.font = "16px sans-serif";
drawSliceInfo(ctx, info);
yield ctx.canvas;
}