packages icon indicating copy to clipboard operation
packages copied to clipboard

[cross_file] Update `XFile.fromData` with `_browserBlob`

Open KKimj opened this issue 1 year ago • 0 comments

Introduction

Future<XFile> execute(XFile imageFile) async {
    try {
      final Uint8List imageBytes = await imageFile.readAsBytes();
      final Image? image = decodeNamedImage(imageBytes, imageFile.name);
      final Image compressedImage = copyResize(
        image!,
        width: params.value2 ?? image.width,
      );
      final Uint8List compressedImageBytes = Uint8List.fromList(
        encodeJpg(compressedImage, quality: params.value3 ?? 100),
      );
      final XFile compressedImageFile = XFile.fromData(
        compressedImageBytes,
        name: '${imageFile.name}.jpeg',
        path: kIsWeb ? null : '${imageFile.path}.jpeg',
        mimeType: 'image/jpeg',
      );
      return compressedImageFile;
    } catch (e) {
      Logger().e(e);
      return Left(Exception(e));
    } 
}

Pre-launch Checklist

  • [x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • [x] I read the Tree Hygiene wiki page, which explains my responsibilities.
  • [ ] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
  • [x] I signed the CLA.
  • [ ] The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • [ ] I listed at least one issue that this PR fixes in the description above.
  • [ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • [ ] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
  • [ ] I updated/added relevant documentation (doc comments with ///).
  • [ ] I added new tests to check the change I am making, or this PR is test-exempt.
  • [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

KKimj avatar Oct 12 '22 10:10 KKimj