jpegtran_ffi 0.0.8 copy "jpegtran_ffi: ^0.0.8" to clipboard
jpegtran_ffi: ^0.0.8 copied to clipboard

outdated

Mostly lossless transformations of JPEG images, implemented using libjpeg-turbo via Dart's FFI.

jpegtran_ffi #

Mostly lossless transformations of JPEG images, similar to those than can be made using jpegtran tool, e.g. cropping and rotations. Since JPEG data doesn't need to be decoded or encoded it should hopefully be fast as well.

A lossy recompress method to reduce quality & size is also included. EXIF data can be copied from the original image.

This package uses libjpeg-turbo via Dart's FFI. Unlike platform plugins it should be usable from within isolates.

Example #

void cropToSquareAndRotate() {
    var jpegtran = JpegTransformer(_imageBytes);
    try {
        var info = jpegtran.getInfo();

        var cropSize = min(info.width, info.height);
        var crop = JpegCrop(
            w: cropSize,
            h: cropSize,
            x: (info.width - cropSize) ~/ 2,
            y: (info.height - cropSize) ~/ 2,
            alignIfRequired: true,
        );

        var rotate = JpegRotation(
            angle: 90,
            crop: crop,
            options: JpegOptions(grayscale: false),
        );

        var newImage = jpegtran.transform(rotate);
        setState(() {
            _imageBytes = newImage;
        });
    } catch (err) {
        _showError(err, context);
    } finally {
        jpegtran.dispose();
    }
}
Uint8List recompress(Uint8List jpegBytes) {
  var jpegtran = JpegTransformer(jpegBytes);
  try {
    return jpegtran.recompress(
      quality: 70,
      preserveEXIF: true,
    );
  } finally {
    jpegtran.dispose();
  }
}

TODO #

  • Remove unneeded parts of libjpeg-turbo
  • Lossy resizing
4
likes
0
points
24
downloads

Publisher

unverified uploader

Weekly Downloads

Mostly lossless transformations of JPEG images, implemented using libjpeg-turbo via Dart's FFI.

Homepage

License

unknown (license)

Dependencies

ffi, flutter

More

Packages that depend on jpegtran_ffi

Packages that implement jpegtran_ffi