anchor.diff:    double dy = (outputSize.height - destinationSize.height) * (alignY ?? 0.5);
     Point destinationPosition = rect.topLeft + new Offset(dx, dy);
     Rect destinationRect = destinationPosition & destinationSize;
  +  if (repeat != ImageRepeat.noRepeat) {
  +    canvas.save();
  +    canvas.clipRect(rect);
  +  }
     if (centerSlice == null) {
       Rect sourceRect = Point.origin & sourceSize;
       for (Rect tileRect in _generateImageTileRects(rect, destinationRect, repeat))
  
positive.code:     // as we apply a nine-patch stretch.
      assert(sourceSize == inputSize);
    }
    Paint paint = new Paint()..isAntiAlias = false;
    if (colorFilter != null)
      paint.colorFilter = colorFilter;
  
negative.code:     for (Rect tileRect in _generateImageTileRects(rect, destinationRect, repeat))
        canvas.drawImageNine(image, centerSlice, tileRect, paint);
    }
    if (repeat != ImageRepeat.noRepeat)
      canvas.restore();
  }
  
  /// A background image for a box.
  