ImageClip constructor
Implementation
ImageClip(this.viewDimension, this.viewClip, [this._imageDimension]) {
if (_imageDimension != null) {
var wR = viewDimension.width / _imageDimension!.width;
var hR = viewDimension.height / _imageDimension!.height;
var r = wR < hR ? wR : hR;
var w = (_imageDimension!.width * r).toInt();
var h = (_imageDimension!.height * r).toInt();
var imgViewRect = Rectangle(
(viewDimension.width - w) / 2,
(viewDimension.height - h) / 2,
w,
h,
);
var imgViewClip = imgViewRect.intersection(viewClip!)!;
var rInv = 1 / r;
var imgRect = Rectangle(
imgViewRect.left * rInv,
imgViewRect.top * rInv,
imgViewRect.width * rInv,
imgViewRect.height * rInv,
);
var imgClip = Rectangle(
(imgViewClip.left * rInv).toInt(),
(imgViewClip.top * rInv).toInt(),
(imgViewClip.width * rInv).toInt(),
(imgViewClip.height * rInv).toInt(),
);
imgClip = Rectangle(
(imgClip.left - imgRect.left).toInt(),
(imgClip.top - imgRect.top).toInt(),
imgClip.width.toInt(),
imgClip.height.toInt(),
);
_clip = imgClip;
} else {
_imageDimension = viewDimension;
_clip = viewClip;
}
}