code: def test_save_frame(util, with_mask, t, mask_color, frames):
      filename = os.path.join(
          util.TMP_DIR, "moviepy_VideoClip_save_frame.png"
      )
      if os.path.isfile(filename):
          try:
              os.remove(filename)
          except PermissionError:
              pass
  
      width, height = (len(frames[0][0]), len(frames[0]))
  
      clip = BitmapClip(frames, fps=1)
      if with_mask:
          mask = ColorClip(
              color=mask_color, is_mask=True, size=(width, height)
          )
          clip = clip.with_mask(mask)
  
      clip.save_frame(filename, t)
  
      t = int(convert_to_seconds(t))
  
      # expected RGB
      e_r, e_g, e_b = BitmapClip.DEFAULT_COLOR_DICT[frames[t][0][0]]
  
      im = Image.open(filename, mode="r")
      assert im.width == width
      assert im.height == height
  
      for i in range(im.width):
          for j in range(im.height):
              rgba = im.getpixel((i, j))
              if len(rgba) == 4:
                  r, g, b, a = rgba
              else:
                  r, g, b = rgba
  
              assert r == e_r
              assert g == e_g
              assert b == e_b
  
              if with_mask:
                  assert round(a / 254, 2) == mask_color
  
imports: import copy
  import os
  import numpy
  from PIL import Image
  import pytest
  from moviepy.audio.AudioClip import AudioClip
  from moviepy.audio.io.AudioFileClip import AudioFileClip
  from moviepy.tools import convert_to_seconds
  from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
  from moviepy.video.fx.mask_color import mask_color
  from moviepy.video.fx.multiply_speed import multiply_speed
  from moviepy.video.io.VideoFileClip import VideoFileClip
  from moviepy.video.VideoClip import BitmapClip, ColorClip, ImageClip, VideoClip
label_desc: Use image node_id 9 for calling a global function with example usage: test_save_frame(util, with_mask, t, mask_color, frames) without return types