// This script demonstrates how to use a display list to display
// graphics and text in a non-destructive image overlay.

  if (IJ.getVersion()<"1.43i")
     IJ.error("Requires ImageJ 1.42i or later");
  IJ.run("Blobs (25K)");
  img = IJ.getImage();
  list = new Vector();
  font = new Font("SanSerif", Font.PLAIN, 28);
  roi = new TextRoi(10, 5, "This is an overlay", font);
  roi.setStrokeColor(Color.yellow);
  roi.setFillColor(new Color(0,0,0,0.5));
  list.addElement(roi);
  roi = new Roi(30,70,200,150);
  roi.setStrokeColor(Color.blue);
  roi.setFillColor(new Color(0,0,1,0.3));
  list.addElement(roi);
  roi = new OvalRoi(60,60,140,140);
  roi.setStrokeColor(Color.green);
  roi.setStrokeWidth(15);
  list.addElement(roi);
  roi = new Line(30,70,230,230);
  roi.setStrokeColor(Color.red);
  roi.setStrokeWidth(18);
  list.addElement(roi);
  x = [18,131,148,242];
  y = [167,104,232,172];
  roi = PolygonRoi(x, y, x.length, Roi.POLYLINE);
  roi.fitSpline();
  roi.setStrokeColor(Color.blue);
  roi.setStrokeWidth(12);
  img.setRoi(roi);
  list.addElement(roi);
  img.setDisplayList(list);
