image property

ImageProvider<Object>? get image

Implementation

ImageProvider? get image {
  if (_image != null) return _image;
  for (CSSFunctionalNotation method in functions) {
    if (method.name == 'url') {
      String url = method.args.isNotEmpty ? method.args[0] : '';
      if (url.isEmpty) {
        continue;
      }
      // Method may contain quotation mark, like ['"assets/foo.png"']
      url = removeQuotationMark(url);

      Uri uri = Uri.parse(url);
      if (url.isNotEmpty) {
        final String base = baseHref ?? controller.url;

        uri = controller.uriParser!.resolve(Uri.parse(base), uri);
        final FlutterView? ownerFlutterView = controller.ownerFlutterView;
        final double devicePixelRatio =
            ownerFlutterView?.devicePixelRatio ?? _defaultDevicePixelRatio;

        return _image = BoxFitImage(
            boxFit: renderStyle.backgroundSize.fit,
            url: uri,
            contextId: controller.view.contextId,
            targetElementPtr: renderStyle.target.pointer!,
            loadImage: _obtainImage,
            onImageLoad: _handleBitFitImageLoad,
            devicePixelRatio: devicePixelRatio);
      }
    }
  }

  return null;
}