Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
333 of 1024 menu
◀ ▶

Класс MemoryImage

Класс MemoryImage хранит bytes типа Uint8List и необязательный scale. Провайдер декодирует PNG, JPEG и другие форматы без обращения к диску или сети.

Синтаксис

MemoryImage( bytes, scale: 1.0, )

Параметры

Параметр Описание
bytes Байты картинки в памяти.
scale Масштаб: сколько пикселей файла приходится на один логический.

Пример

Давайте загрузим актив в байты и покажем через провайдер:

import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() { runApp(const MaterialApp(home: MemoryDemo())); } class MemoryDemo extends StatefulWidget { const MemoryDemo({super.key}); @override State<MemoryDemo> createState() => _MemoryDemoState(); } class _MemoryDemoState extends State<MemoryDemo> { Uint8List? bytes; @override void initState() { super.initState(); rootBundle.load('assets/pic.png').then((data) { setState(() => bytes = data.buffer.asUint8List()); }); } @override Widget build(BuildContext context) { if (bytes == null) { return const Scaffold(body: Center(child: CircularProgressIndicator())); } return Scaffold( body: Center( child: Image(image: MemoryImage(bytes!), width: 150), ), ); } }

На экране появится картинка, декодированная из байтов файла assets/pic.png.

Пример

Давайте сравним длину массива у двух провайдеров:

import 'dart:typed_data'; void main() { final short = MemoryImage(Uint8List(4)); final long = MemoryImage(Uint8List(8)); print(short.bytes.length < long.bytes.length); }

Результат выполнения кода

true

Смотрите также

  • метод memory,
    который строит виджет напрямую из байтов
  • метод memoryNetwork,
    который использует байты как заглушку
  • класс FileImage,
    который читает картинку с диска
  • метод load,
    который возвращает ByteData для MemoryImage
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить