Render text to RenderWindow or vtkUnsignedCharArray directly

I’m making an interactive measuring tool for an interactor.

The interactor draws a line between the two points by setting the pixel values in a vtkUnsignedCharArray (in very much the same way as the rubberband zoom)
That works fine,

now I want to add the measured distance to the line.

I found vtkFreeTypeTools and RenderString to render the string to a vtkImageData object.

So I think I’m almost there.

Last thing I need is a way to get the data out of the ImageData object and into either the RenderWindow or the vtkUnsignedCharArray

I’m working in Python, the code so far is:

def DrawLine(self, x1, x2, y1, y2):
        rwi = self.GetInteractor()
        rwin = rwi.GetRenderWindow()

        size = rwin.GetSize()

        x1 = min(max(x1,0), size[0])
        x2 = min(max(x2,0), size[0])
        y1 = min(max(y1,0), size[1])
        y2 = min(max(y2,0), size[1])


        tempPA = vtkUnsignedCharArray()
        tempPA.DeepCopy(self._pixel_array)

        xs, ys = self.LineToPixels(x1, x2, y1, y2)
        for x, y in zip(xs, ys):
            id = (y * size[0]) + x
            tempPA.SetTuple(id, (0, 0, 0, 1))

        # and Copy back to the window
        rwin.SetRGBACharPixelData(0, 0, size[0] - 1, size[1] - 1, tempPA, 0)

        # can we add something to the window here?
        freeType = vtk.vtkFreeTypeTools.GetInstance()
        textProperty = vtk.vtkTextProperty()
        textProperty.SetJustificationToLeft()
        textProperty.SetFontSize(24)
        textProperty.SetOrientation(25)

        textImage = vtk.vtkImageData()
        freeType.RenderString(textProperty, "text", 72, textImage) # this does not give an error, assume it works

        # Now put the textImage in the RenderWindow
        # rwin.SetRGBACharPixelData(0, 0, size[0] - 1, size[1] - 1, textImage, 0)

        rwin.Frame()