yuni_image_crop 0.0.2 copy "yuni_image_crop: ^0.0.2" to clipboard
yuni_image_crop: ^0.0.2 copied to clipboard

A new Flutter package for image cropping, based on extended_image.

yuni_image_crop #

A Flutter package for image cropping, based on extended_image.

Features #

  • Image cropping functionality
  • Easy to use API with ImageCropHelper
  • Based on extended_image for powerful image handling
  • Support for image compression
  • Customizable aspect ratio

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  yuni_image_crop: ^0.0.1

Usage #

ImageCropHelper 是一个单例类,提供了最简便的方式来打开裁剪页面:

import 'package:yuni_image_crop/yuni_image_crop.dart';
import 'dart:typed_data';
import 'dart:io';

// 使用 ImageCropHelper 打开裁剪页面
Future<void> cropImage(BuildContext context, Uint8List imageBytes) async {
  final File? croppedFile = await ImageCropHelper.instance.crop(
    context: context,
    imageBytes: imageBytes,
    aspectRatio: 1.0, // 可选:设置裁剪比例,如 1.0 为正方形
    quality: 80,      // 可选:图片压缩质量,默认 80
    titleText: '裁剪图片',  // 可选:自定义标题
    finishText: '完成',     // 可选:自定义完成按钮文字
  );
  
  if (croppedFile != null) {
    // 裁剪成功,使用裁剪后的文件
    print('裁剪后的文件路径: ${croppedFile.path}');
  }
}

Using ImageCropViewer (Direct) #

如果你需要更多自定义控制,可以直接使用 ImageCropViewer

import 'package:yuni_image_crop/yuni_image_crop.dart';

Navigator.of(context).push(
  MaterialPageRoute(
    builder: (_) => ImageCropViewer(
      imageBytes: imageBytes,
      aspectRatio: 1.0,  // 裁剪比例
      quality: 80,       // 压缩质量
      titleText: '裁剪图片',
      finishText: '完成',
    ),
  ),
);

Using ImageCropController (Advanced) #

如果你需要完全控制裁剪逻辑,可以使用 ImageCropController

import 'package:yuni_image_crop/yuni_image_crop.dart';

final controller = ImageCropController();

// 执行裁剪并保存为文件
final File? croppedFile = await controller.cropAndSave(quality: 80);

// 或获取裁剪后的字节数据
final Uint8List? croppedBytes = await controller.cropAndBytes(quality: 80);

API Reference #

ImageCropHelper #

参数 类型 必填 说明
context BuildContext BuildContext
imageBytes Uint8List 图片字节数据
aspectRatio double? 裁剪比例,如 1.0 为正方形
quality int 图片压缩质量 (0-100),默认 80
titleText String? 页面标题
finishText String? 完成按钮文字
appBar PreferredSizeWidget? 自定义 AppBar

Getting Started #

For more information about Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

0
likes
150
points
18
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A new Flutter package for image cropping, based on extended_image.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

extended_image, flutter, flutter_image_compress, path_provider, yuni_widget

More

Packages that depend on yuni_image_crop