paint method
Implementation
@override
void paint(Context context, PdfRect box) {
final _image = image.resolve(context, box.size, dpi: dpi);
final imageSize = PdfPoint(
_image.width.toDouble(),
_image.height.toDouble(),
);
final sizes = applyBoxFit(fit, imageSize, box.size);
final scaleX = sizes.destination!.x / sizes.source!.x;
final scaleY = sizes.destination!.y / sizes.source!.y;
final sourceRect = alignment.inscribe(
sizes.source!,
PdfRect.fromPoints(PdfPoint.zero, imageSize),
);
final destinationRect = alignment.inscribe(sizes.destination!, box);
final mat =
Matrix4.translationValues(
destinationRect.left,
destinationRect.bottom,
0,
)
..scaleByDouble(scaleX, scaleY, 1, 1)
..translateByDouble(-sourceRect.left, -sourceRect.bottom, 0, 1);
context.canvas
..saveContext()
..drawBox(box)
..clipPath()
..setTransform(mat)
..drawImage(_image, 0, 0, imageSize.x, imageSize.y)
..restoreContext();
}