Преобразование Base64 в изображение во Flutter: несколько методов, объясненных примерами кода

Во Flutter могут возникнуть ситуации, когда вам потребуется преобразовать строку Base64 в изображение. Этот процесс включает в себя декодирование строки Base64 и ее отображение в виде изображения. В этой статье блога мы рассмотрим несколько методов достижения такого преобразования во Flutter, а также приведем примеры кода для каждого метода.

Метод 1: использование пакета flutter_image_compress
Пакет flutter_image_compressпредоставляет удобный способ сжатия и преобразования изображений. Выполните следующие действия, чтобы преобразовать строку Base64 в изображение с помощью этого пакета:

Шаг 1. Добавьте пакет flutter_image_compressв файл pubspec.yaml.

dependencies:
  flutter_image_compress: ^<version>

Шаг 2. Импортируйте необходимые пакеты в файл Dart.

import 'package:flutter_image_compress/flutter_image_compress.dart';
import 'dart:typed_data';

Шаг 3. Преобразуйте строку Base64 в байты и декодируйте ее, используя base64Decode().

Uint8List bytes = base64Decode(base64String);

Шаг 4. Используйте метод compressиз flutter_image_compress, чтобы преобразовать байты в файл изображения.

var result = await FlutterImageCompress.compressWithList(
  bytes,
  minWidth: 800,
  minHeight: 600,
  quality: 90,
);

Метод 2: использование пакета image
Пакет image— это мощная библиотека обработки изображений, которую можно использовать для преобразования строк Base64 в изображения. Вот как вы можете использовать этот пакет для преобразования изображений:

Шаг 1. Добавьте пакет imageв файл pubspec.yaml.

dependencies:
  image: ^<version>

Шаг 2. Импортируйте необходимые пакеты в файл Dart.

import 'package:image/image.dart' as Img;
import 'dart:typed_data';

Шаг 3. Преобразуйте строку Base64 в байты и декодируйте ее с помощью base64Decode().

Uint8List bytes = base64Decode(base64String);

Шаг 4. Используйте метод decodeImage()из пакета image, чтобы декодировать байты и преобразовать их в изображение.

Img.Image image = Img.decodeImage(bytes);

Метод 3: использование пакета flutter_native_image
Пакет flutter_native_imageпредоставляет собственные возможности обработки изображений. Выполните следующие действия, чтобы преобразовать строку Base64 в изображение с помощью этого пакета:

Шаг 1. Добавьте пакет flutter_native_imageв файл pubspec.yaml.

dependencies:
  flutter_native_image: ^<version>

Шаг 2. Импортируйте необходимые пакеты в файл Dart.

import 'package:flutter_native_image/flutter_native_image.dart';

Шаг 3. Преобразуйте строку Base64 в байты и декодируйте ее, используя base64Decode().

Uint8List bytes = base64Decode(base64String);

Шаг 4. Используйте метод await FlutterNativeImage.decodeImageFromList()для декодирования байтов и преобразования их в изображение.

var image = await FlutterNativeImage.decodeImageFromList(bytes);

В этой статье мы рассмотрели три различных метода преобразования строки Base64 в изображение во Flutter. Используя пакеты flutter_image_compress, imageили flutter_native_image, вы можете легко декодировать строку Base64 и отображать ее как изображение в своих приложениях Flutter. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует вашим требованиям.