분류, 패키지 및 저장소 검색

pro_image_editor 표지
패키지 상세v14.22.0

pro_image_editor

플러터 이미지 편집기: 사용자 친화적인 편집 기능으로 이미지를 원활하게 향상시킵니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
8만
좋아요
597
Pub 점수
160

패키지 설치

flutter pub add pro_image_editor

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Pro Image Editor는 Flutter 애플리케이션 내에서 이미지를 편집하기 위한 원활하고 사용자 친화적인 인터페이스를 제공하는 플러터 패키지입니다. 자르기, 회전, 밝기, 대비 및 채도 조정과 같은 핵심 편집 기능을 지원하여 현장에서 이미지 향상이 필요한 앱에 적합합니다. 이 패키지는 안드로이드, iOS, 웹, 맥OS, 윈도우, 리눅스 등 여러 플랫폼과 호환되어 광범위한 접근성을 보장합니다. 직관적인 컨트롤과 효율적인 성능을 통해 개발자는 복잡한 맞춤 개발 없이 강력한 이미지 편집 기능을 통합할 수 있습니다.

사용 사례

  • 모바일 앱 사진 편집
  • 웹 기반 이미지 사용자 지정
  • 크로스 플랫폼 이미지 향상 도구
  • 소셜 미디어 콘텐츠 제작
  • 전자상거래 제품 이미지 편집

주요 기능

  • 자르기 및 회전 도구
  • 명도, 대비 및 채도 조정
  • 다중 플랫폼 지원
  • Flutter와의 간단한 통합
  • 편집의 실시간 미리보기
  • 경량이고 성능이 뛰어남

적합한 대상

  • 이미지가 많은 앱을 개발하는 개발자
  • 디자인 중심의 모바일 또는 웹 애플리케이션
  • 빠른 이미지 수정이 필요한 앱
  • 교육적 또는 창의적인 도구
  • 콘텐츠 관리 시스템

고려 사항

  • 기본 편집 기능에 제한됨
  • 고급 필터나 AI 향상 없음
  • 큰 이미지 파일을 조심스럽게 다뤄야 합니다
  • 고해상도 이미지에 대한 추가 최적화가 필요할 수 있습니다
  • 완전한 기능을 위해 외부 종속성에 의존합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Logo

pub package Sponsor License GitHub issues Web Demo

The ProImageEditor is a Flutter widget designed for image editing within your application. It provides a flexible and convenient way to integrate image editing capabilities into your Flutter project.

Demo Website

Table of contents

Preview

Grounded-Design Frosted-Glass-Design WhatsApp-Design
Grounded-Design Frosted-Glass-Design WhatsApp-Design
Ai-Commands Ai-Remove-Background Ai-Replace-Background
Ai-Commands Ai-Remove-Background Ai-Replace-Background
Paint-Editor Text-Editor Crop-Rotate-Editor
Paint-Editor Text-Editor Crop-Rotate-Editor
Filter-Editor Emoji-Editor Sticker/ Widget Editor
Filter-Editor Emoji-Editor Sticker-Widget-Editor

Features

🧩 Editor Modules
  • 🎨 Paint Editor: Draw freehand with various brushes, shapes (like circles and arrows), and apply blur or pixelation for censoring.
  • 🅰️ Text Editor: Add and style text with full customization.
  • ✂️ Crop & Rotate Editor: Crop, flip, and rotate images with ease.
  • 🎛️ Tune Adjustments: Adjust brightness, contrast, saturation, and more.
  • 📸 Filter Editor: Apply custom or predefined image filters.
  • 💧 Blur Editor: Add blur to any part of the image.
  • 😀 Emoji Picker: Quickly insert emojis into your design.
  • 🖼️ Sticker Editor: Add and manage custom image stickers.
🚀 Performance & Architecture
  • 🧵 Multi-Threading
    • Use isolates for background tasks on native platforms.
    • Use web workers for background tasks in web environments.
    • Auto- or manually configure the number of active background processors based on device capabilities.
🛠️ Core Features
  • 🖼️ Flexible Image Input: Load images from memory, assets, files, or network.
  • 🌍 i18n Support: Translate every string in the UI.
  • 🎚️ Per-Editor Configuration: Each module offers extensive customization options.
  • 🧱 Fully Customizable: Swap icons, styles, and widgets for any subeditor.
  • 📐 Helper Lines: Snap and align objects more accurately.
  • ↩️ Undo/Redo support for non-destructive editing.
  • 🔁 Movable Background Image: Position the base image as needed.
  • 🔀 Reorder Layers: Change layer stacking order dynamically.
  • 🎯 Interactive Layers: Select and manipulate each element with precision.
  • 🖌️ Hit Detection: Paint layers support interactive selection.
  • 🔍 Zoom Support: Zoom in/out in both paint and main editor views.
  • 🖱️ Enhanced Desktop UX: Fine-tuned movement and scaling on desktop platforms.
  • 🧲 Multiselect Support: Select multiple elements at once.
🎨 Themes
  • 🪵 Grounded Theme
  • 🧊 Frosted Glass Theme
  • 💬 WhatsApp Theme
🔗 Integration
  • 🤖 AI Assistant: Integrate ChatGPT, Gemini, or other AI models to assist with image editing via smart suggestions or direct commands.
  • 🎥 Video Editor: Seamlessly combine image and video editing workflows.

Setup

Web
Show web setup

If you're displaying emoji on the web and want them to be colored by default (especially if you're not using a custom font like Noto Emoji), you can achieve this by adding the useColorEmoji: true parameter to your flutter_bootstrap.js file, as shown in the code snippet below:

{{flutter_js}}
{{flutter_build_config}}

_flutter.loader.load({
    serviceWorkerSettings: {
        serviceWorkerVersion: {{flutter_service_worker_version}},
    },
    onEntrypointLoaded: function (engineInitializer) {
      engineInitializer.initializeEngine({
        useColorEmoji: true, // add this parameter
        renderer: 'canvaskit'
      }).then(function (appRunner) {
        appRunner.runApp();
      });
    }
});

You can view the full web example here.

Android, iOS, macOS, Linux, Windows

No additional setup required.

Apps that still use package:flutter/material.dart

Since v14 the editor is built on material_ui and cupertino_ui, which Flutter is decoupling from the SDK. If your app has not migrated its own MaterialApp yet, hand it the localizations of those packages, otherwise the editor's app bars, dialogs and bottom sheets throw No MaterialLocalizations found:

import 'package:material_ui/material_ui.dart' as material_ui;

MaterialApp(
  localizationsDelegates: [
    ...material_ui.GlobalMaterialLocalizations.delegates,
    // Your existing delegates, e.g. the ones from flutter_localizations.
  ],
  // ...
);

Usage

import 'package:pro_image_editor/pro_image_editor.dart';

@override
Widget build(BuildContext context) {
  return ProImageEditor.network(
    'https://picsum.photos/id/237/2000',
    callbacks: ProImageEditorCallbacks(
      onImageEditingComplete: (Uint8List bytes) async {
        /*
          Your code to process the edited image, such as uploading it to your server.

          You can choose to use await to keep the loading dialog visible until 
          your code completes, or run it without async to close the loading dialog immediately.

          By default, the image bytes are in JPG format.
        */
        Navigator.pop(context);
      },
        /* 
        Optional: If you want haptic feedback when a line is hit, similar to WhatsApp, 
        you can use the code below along with the vibration package.

          mainEditorCallbacks: MainEditorCallbacks(
            helperLines: HelperLinesCallbacks(
              onLineHit: () {
                Vibration.vibrate(duration: 3);
              }
            ),
          ),
        */
    ),
  );
}
Designs

The editor offers three prebuilt designs:

Extended-Configurations

The editor provides extensive customization options, allowing you to modify text, icons, colors, and widgets to fit your needs. It also includes numerous callbacks for full control over its functionality.

Check out the web demo to explore all possibilities. You can find the example code for all demos here.

Video-Editor

The editor supports full video generation on Android, iOS, and macOS. Support for Windows and Linux is coming soon.

To keep the image editor lightweight, you’ll need to manually add the video player package of your choice. For rendering the video, you can use my package pro_video_editor, which is also used in the example.

An example of how to implement the video editor with a specific video player can be found here, and a simpler example using just the default video_player is available here.

Sponsors

Included Packages

A big thanks to the authors of these amazing packages.

Contributors

Made with contrib.rocks.

카테고리

의존성

의존성 목록 7 개

소스 저장소

이 패키지를 사용하는 프로젝트