[flutter] photo_view 패키지로 이미지 레트로 효과 주기

photo_view 패키지는 Flutter에서 이미지를 확대, 축소 및 회전할 수 있는 간단한 위젯을 제공하는 패키지입니다. 이 패키지를 사용하여 이미지에 레트로 효과를 주는 방법을 알아보겠습니다.

photo_view 패키지 추가하기

우선, pubspec.yaml 파일을 열고 dependencies 부분에 photo_view 패키지를 추가해야 합니다. 예를 들면 다음과 같습니다.

dependencies:
  flutter:
    sdk: flutter
  photo_view: ^0.12.0

의존성을 추가한 후, 패키지를 설치하기 위해 터미널에서 flutter pub get 명령어를 실행합니다.

이미지 레트로 효과 주기

photo_view 패키지를 사용하여 이미지 위젯을 생성한 후, 이 위젯에 레트로 효과를 주기 위해 이미지 필터를 사용할 수 있습니다. 예를 들어, SepiaImageFilter와 BrightnessImageFilter를 추가하여 이미지에 레트로 효과를 줄 수 있습니다.

import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';

class RetroImage extends StatelessWidget {
  final String imageUrl;

  RetroImage({required this.imageUrl});

  @override
  Widget build(BuildContext context) {
    return PhotoView(
      imageProvider: NetworkImage(imageUrl),
      filterQuality: FilterQuality.low,
      backgroundDecoration: BoxDecoration(
        color: Colors.white,
        image: DecorationImage(
          image: NetworkImage(imageUrl),
          fit: BoxFit.cover,
          colorFilter: ColorFilter.mode(
            Colors.brown.withOpacity(0.7),
            BlendMode.multiply,
          ),
        ),
      ),
      customFilter: Matrix4.identity()
        ..setEntry(3, 2, 0.01)
        ..setEntry(3, 0, 0.5)
        ..setEntry(3, 1, 0.5)
        ..setEntry(1, 1, 0.8)
        ..setEntry(2, 2, 0.8)
        ..setEntry(0, 0, 0.8),
    );
  }
}

위의 코드는 RetroImage라는 위젯을 정의하는 예시입니다. 이 위젯은 photo_view 패키지의 PhotoView 위젯을 사용하여 이미지를 보여줍니다. 위젯의 imageProvider 속성에는 이미지의 URL을 전달하고, backgroundDecoration 속성에는 이미지에 레트로 효과를 주는 필터를 정의합니다.

필터를 적용하는 부분은 colorFilter 속성을 사용하여 정의됩니다. Colors.brown.withOpacity(0.7)는 갈색 계통의 색상을 의미하며, BlendMode.multiply는 이미지에 해당 색상을 곱하는 역할을 합니다. 따라서 이미지에 갈색 계통의 색상이 적용되어 레트로 효과가 나타납니다.

나머지 customFilter 속성은 이미지에 추가적인 필터를 적용하는 행렬 연산입니다. 위 코드에서는 이미지의 밝기와 채도를 줄이는 효과를 주고 있습니다.

이제 RetroImage 위젯을 원하는 곳에 사용하여 이미지에 레트로 효과를 주실 수 있습니다.

마무리

이번 블로그 포스트에서는 photo_view 패키지를 사용하여 Flutter 앱에서 이미지 레트로 효과를 주는 방법을 알아보았습니다. photo_view 패키지는 빠르고 간편한 이미지 확대, 축소 및 회전을 제공하여 사용자에게 좋은 사용자 경험을 제공할 수 있습니다. 레트로 효과를 적용하여 앱의 디자인을 개선하고 사용자들에게 독특한 시각적 경험을 제공해보세요.

끝.