文章目录
问题:在使用flutter开发的时候,我们通常会遇到对图片的处理,比如:从相册中选取图片(这篇文章不再叙述,如有疑问请点这里查看)
今天的问题将选取到的图片进行裁剪
1、安装依赖
# 本地图片
image_picker: ^0.6.0+4
# 图片裁切
image_cropper: ^1.0.2
2、使用裁剪功能之前需要在AndroidManifest.xml文件中配置
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
3、在页面上引入插件
import 'package:image_picker/image_picker.dart';
import 'dart:io';
import 'package:image_cropper/image_cropper.dart';
4、定义方法
File _image;
Future getImage() async {
var image = await picker.getImage(source: ImageSource.gallery);
File croppedFile = await ImageCropper.cropImage(
sourcePath: image.path,
maxWidth: 512,
maxHeight: 512,
);
setState(() {
print('>>>>>>>>>> $croppedFile');
_image = croppedFile;
});
}
5、在点击上传的按钮调用 getImage
注意:根据以上流程来的裁剪出来的图片是矩形的,因为插件中提供默认截取方式是矩形的。如果我们想要截出来的图片是圆形的,需要在ImageCropper.cropImage()增加一个cropStyle参数: cropStyle:CropStyle.circle
File _image;
Future getImage() async {
var image = await picker.getImage(source: ImageSource.gallery);
File croppedFile = await ImageCropper.cropImage(
sourcePath: image.path,
maxWidth: 512,
maxHeight: 512,
cropStyle:CropStyle.circle
);
setState(() {
print('>>>>>>>>>> $croppedFile');
_image = croppedFile;
});
}