vid_painter.dart 826 B

12345678910111213141516171819202122232425262728293031
  1. import 'package:flutter/material.dart';
  2. import 'dart:ui' as ui;
  3. class VidPainter extends CustomPainter {
  4. VidPainter({required this.image});
  5. ui.Image image;
  6. @override
  7. void paint(Canvas canvas, Size size) async {
  8. final double scale = size.width / image.width;
  9. final double offsetY = (size.height - image.height * scale) / 2;
  10. Paint paint = Paint();
  11. canvas.save();
  12. // canvas.scale(scale);
  13. // canvas.drawImage(image, Offset(0, offsetY), paint);
  14. canvas.drawImageRect(
  15. image,
  16. Rect.fromLTWH(0, 0, image.width.toDouble(), image.height.toDouble()),
  17. Rect.fromLTWH(0, offsetY, size.width, image.height * scale),
  18. paint);
  19. canvas.restore();
  20. // image.dispose();
  21. }
  22. @override
  23. bool shouldRepaint(covariant CustomPainter oldDelegate) {
  24. return true;
  25. }
  26. }