Flutter: кадрировать файл (изображение) в виде круга

Я пытаюсь обрезать файл (файл изображения) во флаттере. Вот что у меня есть:

Это то, что хотелось бы получить после кадрирования (png с круговым кадрированием)

Важно, чтобы файл был png, чтобы он не имел белых границ.

Есть ли пакет, поддерживающий это?

Заранее спасибо!

3 ответа

Решение

Эти простые действия дают желаемый результат.

Создайте PictureRecorder.

Создайте холст с помощью PictureRecorder.

Нарисуйте круг на холсте с помощью canvas.drawCircle().

Вызовите endRecording() на PictureRecorder, чтобы получить изображение.

Вызов метода toImage() на изображении.

Преобразуйте изображение в ByteData().

Сохраняйте изображение локально с помощью getApplicationDocumentsDirectory(), только если вы хотите сохранить.

ПОЛНЫЙ ОТВЕТ с ИСХОДНЫМ КОДОМ

Вы можете использовать BoxDecoration , чтобы обрезать изображение, которое будет отображаться на виджете.

      Container(
  width: 150,
  height: 150,
  decoration: BoxDecoration(
    shape: BoxShape.circle,
    color: Colors.white,
    image: DecorationImage(
      fit: BoxFit.fill,
      image: AssetImage('assets/image.jpeg'),
    ),
  ),
),

Используйте этот простой пакет обрезки изображений, который поддерживает обрезку самого файла.

Вы также можете обратиться к моему ответу о повороте изображений в файлах с помощью dart.

Другие вопросы по тегам