class_docstr: Log writer to write vdl records to log file.
  
  The class `LogWriter` provides APIs to create record file and add records to
  it. The class updates log file asynchronously without slowing down training.
class_docstr_tok: ["Log","writer","to","write","vdl","records","to","log","file",".","The","class","`","LogWriter","`","provides","APIs","to","create","record","file","and","add","records","to","it",".","The","class","updates","log","file","asynchronously","without","slowing","down","training","."]
docstr: Add an image to vdl record file.
  
  Args:
      tag (string): Data identifier
      img (np.ndarray): Image represented by a numpy.array
      step (int): Step of image
      walltime (int): Wall time of image
      dataformats (string): Format of image
  
  Example:
      from PIL import Image
      import numpy as np
  
      I = Image.open("./test.png")
      I_array = np.array(I)
      writer.add_image(tag="lll", img=I_array, step=0)
code: def add_image(self, tag, img, step, walltime=None, dataformats="HWC"):
      """Add an image to vdl record file.
  
      Args:
          tag (string): Data identifier
          img (np.ndarray): Image represented by a numpy.array
          step (int): Step of image
          walltime (int): Wall time of image
          dataformats (string): Format of image
  
      Example:
          from PIL import Image
          import numpy as np
  
          I = Image.open("./test.png")
          I_array = np.array(I)
          writer.add_image(tag="lll", img=I_array, step=0)
      """
      if "%" in tag:
          raise RuntimeError("% can't appear in tag!")
      walltime = (
          round(time.time() * 1000) if walltime is None else walltime
      )
      self._get_file_writer().add_record(
          image(
              tag=tag,
              image_array=img,
              step=step,
              walltime=walltime,
              dataformats=dataformats,
          )
      )
  
imports: import os
  import time
  import numpy
  from visualdl.component.base_component import audio
  from visualdl.component.base_component import embedding
  from visualdl.component.base_component import histogram
  from visualdl.component.base_component import hparam
  from visualdl.component.base_component import image
  from visualdl.component.base_component import meta_data
  from visualdl.component.base_component import pr_curve
  from visualdl.component.base_component import roc_curve
  from visualdl.component.base_component import scalar
  from visualdl.component.base_component import scalars
  from visualdl.component.base_component import text
  from visualdl.component.graph import translate_graph
  from visualdl.io import bfile
  from visualdl.server.log import logger
  from visualdl.utils.figure_util import figure_to_image
  from visualdl.utils.img_util import merge_images
  from visualdl.utils.md5_util import md5
  from visualdl.writer.record_writer import RecordFileWriter
label_desc: Use image node_id 8 for calling the LogWriter obj's underlying member method code with example usage: obj.add_image(tag, img, step, walltime, dataformats) without return types