Flutter图片加载与显示插件imagekit_io的使用
Flutter图片加载与显示插件imagekit_io的使用
使用
让我们来看看如何使用ImageKit.io Flutter插件。
ImageKit.io(
file,
// folder: "folder_name/nested_folder", (可选)
privateKey: "PrivateKey", // (保密)
onUploadProgress: (progressValue) {
if (kDebugMode) {
print(progressValue);
}
},
).then((ImagekitResponse data) {
/// 获取从[ImageKit.io]上传的图像文件链接
/// 然后保存在任何地方。例如[Firebase, MongoDB]等。
if (kDebugMode) {
print(data.url!); // (你将从ImageKit获取所有响应数据)
// print(data.fileId!);
}
});
你也可以使用图像/视频链接上传到ImageKit.io。
ImageKit.url(
url,
// folder: "folder_name/nested_folder", (可选)
privateKey: "PrivateKey", // (保密)
onUploadProgress: (progressValue) {
if (kDebugMode) {
print(progressValue);
}
},
).then((ImagekitResponse data) {
/// 获取从[ImageKit.io]上传的图像文件链接
/// 然后保存在任何地方。例如[Firebase, MongoDB]等。
if (kDebugMode) {
print(data.url!); // (你将从ImageKit获取所有响应数据)
}
});
完整示例
以下是完整的示例代码,展示了如何使用imagekit_io
插件来选择、上传和显示图片:
import 'dart:html';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:imagekit_io/imagekit_io.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
double linearProgress = 0.0;
Uint8List? file;
String? fileName;
String url = "";
Future pickImage() async {
try {
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.image);
if (result == null) return;
final Uint8List imageTemp = result.files.first.bytes!;
setState(() {
fileName = result.files.first.name;
file = imageTemp;
});
} on PlatformException catch (e) {
debugPrint(e.toString());
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("ImageKit.io"),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(14.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (file != null)
SizedBox(
height: 240,
child: Row(
children: [
Expanded(
child: Column(
children: [
Card(
child: Image.memory(
file!,
height: 200,
width: double.infinity,
),
),
Text("FileName: $fileName"),
],
),
),
if (url.isNotEmpty)
Expanded(
child: Column(
children: [
Card(
child: Image.network(
url,
height: 200,
width: double.infinity,
),
),
const Text("Uploaded Image Preview"),
],
),
),
],
),
),
const SizedBox(height: 10),
LinearProgressIndicator(value: linearProgress),
const SizedBox(height: 10),
const Text(
'ImageKit.io Upload Progress',
),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () {
pickImage();
},
child: const Text("Select Image"),
)
],
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
ImageKit.io(
file!,
fileName: fileName!,
privateKey: "PrivateKey", // (保密)
onUploadProgress: (progressValue) {
if (kDebugMode) {
print(progressValue);
}
setState(() {
linearProgress = progressValue;
});
},
).then((ImagekitResponse data) {
/// 获取从[ImageKit.io]上传的图像文件链接
/// 然后保存在任何地方。例如[Firebase, MongoDB]等。
if (kDebugMode) {
print(data.url!);
print(data.fileId!);
}
setState(() {
url = data.url!;
});
});
},
tooltip: 'Submit',
child: const Icon(Icons.add),
),
);
}
}
更多关于Flutter图片加载与显示插件imagekit_io的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter图片加载与显示插件imagekit_io的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用imagekit_io
插件来加载和显示图片的示例代码。imagekit_io
是一个用于从ImageKit服务加载和显示图片的Flutter插件。
首先,确保你已经在pubspec.yaml
文件中添加了imagekit_io
依赖:
dependencies:
flutter:
sdk: flutter
imagekit_io: ^x.y.z # 请将x.y.z替换为最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,在你的Flutter应用中,你可以按照以下步骤使用imagekit_io
插件:
- 导入包:
在你的Dart文件中导入imagekit_io
包:
import 'package:imagekit_io/imagekit_io.dart';
- 配置ImageKit:
你需要提供你的ImageKit公钥和私钥,以及可选的配置项(如URL端点)。你可以在一个单独的配置文件中设置这些值,或者直接在代码中设置。
void main() {
// 设置ImageKit配置
ImageKitConfiguration.instance
..publicKey = 'your_public_key'
..privateKey = 'your_private_key'
..urlEndpoint = 'https://your-imagekit-endpoint.imagekit.io';
runApp(MyApp());
}
- 加载和显示图片:
使用ImageKitImage
小部件来加载和显示图片。你可以通过传递图片的路径和其他可选参数来定制图片的加载方式。
import 'package:flutter/material.dart';
import 'package:imagekit_io/imagekit_io.dart';
void main() {
// 设置ImageKit配置
ImageKitConfiguration.instance
..publicKey = 'your_public_key'
..privateKey = 'your_private_key'
..urlEndpoint = 'https://your-imagekit-endpoint.imagekit.io';
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('ImageKit Demo'),
),
body: Center(
child: ImageKitImage(
path: 'your_image_path', // 替换为你的图片路径
options: ImageKitOptions(
transformation: [
Transformation().setWidth(300).setHeight(300), // 可选:设置图片尺寸
],
),
),
),
),
);
}
}
在这个示例中,ImageKitImage
小部件用于加载和显示指定路径的图片。你可以通过options
参数来设置图片的转换选项,比如调整尺寸、裁剪等。
请确保将your_public_key
、your_private_key
、https://your-imagekit-endpoint.imagekit.io
和your_image_path
替换为你实际的ImageKit公钥、私钥、URL端点和图片路径。
这样,你的Flutter应用就能够使用imagekit_io
插件来加载和显示来自ImageKit服务的图片了。