BitmapDataLoadInfo constructor
Implementation
BitmapDataLoadInfo(String url, List<double> pixelRatios)
: _sourceUrl = url,
_loaderUrl = url {
final pixelRatioRegexp = RegExp(r'@(\d+(.\d+)?)x');
final pixelRatioMatch = pixelRatioRegexp.firstMatch(sourceUrl);
if (pixelRatioMatch != null) {
final match = pixelRatioMatch;
final originPixelRatioFractions = (match.group(2) ?? '.').length - 1;
final originPixelRatio = double.parse(match.group(1)!);
final devicePixelRatio = env.devicePixelRatio;
final loaderPixelRatio = pixelRatios.fold<num>(0.0, (a, b) {
final aDelta = (a - devicePixelRatio).abs();
final bDelta = (b - devicePixelRatio).abs();
return aDelta < bDelta && a > 0.0 ? a : b;
});
final name = loaderPixelRatio.toStringAsFixed(originPixelRatioFractions);
_loaderUrl = url.replaceRange(match.start + 1, match.end - 1, name);
_pixelRatio = loaderPixelRatio / originPixelRatio;
}
}