Flutter 图片裁剪(相机,相册)

今天用到了一个特别好用的图片裁剪库,在这里分享一下Copper

先看一下效果图

编辑效果

这个裁剪库还是蛮强的,有左右旋转,比例选择,也可以手动滑动四个角来选择自己想要的裁剪区域

下面给出代码

import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:io';
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';

class Cropper extends StatefulWidget {
  final String title;

  Cropper({this.title});

  @override
  _CropperState createState() => _CropperState();
}

class _CropperState extends State<Cropper> {
  File imageFile;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: imageFile != null ? Image.file(imageFile) : Container(),
      ),
      floatingActionButton: FloatingActionButton(
        backgroundColor: Colors.deepOrange,
        onPressed: () 
          pickImage();
        },
        child: Icon(Icons.add),
      ),
    );
  }

  Future<Null> pickImage() async {
    imageFile = await ImagePicker.pickImage(source: ImageSource.gallery);
    if (imageFile != null) {
      cropImage();
    }
  }

  Future<Null> cropImage() async {
    File croppedFile = await ImageCropper.cropImage(
      sourcePath: imageFile.path,
      aspectRatioPresets: Platform.isAndroid
          ? [
              CropAspectRatioPreset.square,
              CropAspectRatioPreset.ratio3x2,
              CropAspectRatioPreset.original,
              CropAspectRatioPreset.ratio4x3,
              CropAspectRatioPreset.ratio16x9
            ]
          : [
              CropAspectRatioPreset.original,
              CropAspectRatioPreset.square,
              CropAspectRatioPreset.ratio3x2,
              CropAspectRatioPreset.ratio4x3,
              CropAspectRatioPreset.ratio5x3,
              CropAspectRatioPreset.ratio5x4,
              CropAspectRatioPreset.ratio7x5,
              CropAspectRatioPreset.ratio16x9
            ],
      androidUiSettings: AndroidUiSettings(
          toolbarTitle: 'Cropper',
          toolbarColor: Colors.deepOrange,
          toolbarWidgetColor: Colors.white,
          initAspectRatio: CropAspectRatioPreset.original,
          lockAspectRatio: false),
      iosUiSettings: IOSUiSettings(
        title: 'Cropper',
      )
    );
    if (croppedFile != null) {
      imageFile = croppedFile;
      setState(() {
      });
    }
  }
}

在此记录,希望能帮到需要的童鞋快速找到这可裁剪库

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 多年前看过一部电影《杀死比尔》,影响不要太深。演员很美,男女都是。但整个画面血腥而暴力,被我归入恐怖片。有位影迷朋...
    苏西的时光阅读 4,079评论 0 3
  • 抬眼瞭望远处的大山,朦胧中只看到半山腰。烟雾缭绕,若隐若现,甚是迷人。禁不住想象,是否自己站在哪里,犹如天上人间?...
    Sk喵阅读 3,803评论 0 0
  • 欣赏自己的圣洁伟大,简直不要太惊叹,像崇拜偶像一样,从未想到如此之美好而充满力量且柔和,散发温暖强大的光辉。嘿~我...
    九尾喵丿阅读 1,810评论 3 8

友情链接更多精彩内容