gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import * as tf from '../../dist/tfjs.esm';
 
import { env } from '../env/index';
import { isTensor4D } from '../utils/index';
 
export async function imageTensorToCanvas(
  imgTensor: tf.Tensor,
  canvas?: HTMLCanvasElement,
): Promise<HTMLCanvasElement> {
  const targetCanvas = canvas || env.getEnv().createCanvasElement();
 
  const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);
  const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());
  await tf['browser'].toPixels(imgTensor3D, targetCanvas);
 
  imgTensor3D.dispose();
 
  return targetCanvas;
}