Here's a README.md file for network_to_memory_image Flutter package:
# Network to Memory Image
[](https://pub.dev/packages/network_to_memory_image)
A Flutter package to convert network images into `Uint8List` for efficient image manipulation and offline usage.
## ✨ Features
- Load single or multiple network images into memory (`Uint8List`).
- Easily integrate with `Image.memory()`.
- Handles invalid URLs gracefully.
## 🚀 Installation
Add the package to your `pubspec.yaml`:
```yaml
dependencies:
network_to_memory_image: latest_version
Run:
flutter pub get
📌 Usage
Single Image Example
import 'package:flutter/material.dart';
import 'package:network_to_memory_image/network_to_memory_image.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Uint8List? _imageBytes;
@override
void initState() {
super.initState();
_loadImage();
}
Future<void> _loadImage() async {
final imageBytes = await NetworkToMemoryImage.loadSingle(
"https://picsum.photos/200",
);
setState(() {
_imageBytes = imageBytes;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Network to Memory Image")),
body: Center(
child: _imageBytes != null
? Image.memory(_imageBytes!)
: CircularProgressIndicator(),
),
),
);
}
}
Multiple Images Example
import 'package:flutter/material.dart';
import 'package:network_to_memory_image/network_to_memory_image.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Uint8List?> _imageList = [];
bool _isLoading = true;
@override
void initState() {
super.initState();
_loadImages();
}
Future<void> _loadImages() async {
List<String> urls = [
"https://picsum.photos/200?random=1",
"https://picsum.photos/200?random=2",
"https://picsum.photos/200?random=3",
];
final images = await NetworkToMemoryImage.loadMultiple(urls);
setState(() {
_imageList = images;
_isLoading = false;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Network to Memory Image")),
body: Center(
child: _isLoading
? CircularProgressIndicator()
: Wrap(
spacing: 10,
runSpacing: 10,
children: _imageList.map((imageBytes) {
return imageBytes != null
? Image.memory(imageBytes, width: 100, height: 100)
: Icon(Icons.error, size: 50, color: Colors.red);
}).toList(),
),
),
),
);
}
}
📜 License
MIT License
🧑💻 Developer
⭐ Support the Project
If you find this package useful, give it a ⭐ on GitHub! Contributions and feedback are welcome! 🚀
---
This version is concise, removes unnecessary content, and focuses on the essential details. Let me know if you need further adjustments! 🚀