Flutter image_picker에서 png를 선택하면 충돌이 발생하는 경우

소개



모두 사랑 image_picker 플러그인



비망록.

현상



Android의 경우,

아래에서 선택한 파일이 PNG인 경우 충돌.
var file = await ImagePicker().getImage(source: ImageSource.camera);

대책



File 클래스에 Extension을 만들어 Jpeg로 변환하여 대응.

IOFileExtensions.dart
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:image/image.dart';

extension IOFileExtensions on File {
  Future<File> convertJpg({int resizeWidth = 500}) async {
    if (this == null) { return null; }
    try {
      final image = decodeImage(readAsBytesSync());
      final aspect = image.height / image.width;
      final thumbnail = copyResize(image, width: resizeWidth, height: resizeWidth * aspect.toInt());
      return await writeAsBytes(encodeJpg(thumbnail));
    }
    catch(error) {
      debugPrint('convert jpg error: ${error.toString()}');
      return this;
    }
  }
}

좋은 웹페이지 즐겨찾기