Dart LUT3D

pub package

The library for working with LUTs.

License

project under MIT license

Changelogs

full changelog

Task List

  • x Basic impl.
  • x Read .cube files
  • Read another formats
  • x Store 3DLUT
  • Generate LUTs by expression
  • Verifying LUTs
  • x Applying 3D LUTs
  • Applying 1D LUTs
  • Optimize perfomance
  • Clean up code
  • x Trilinear interpolation
  • More tests
  • Documentation
  • x Publish to PUB

0.0.2

  • remove .fromFile(File f) factory

Instalation

add dependency in pubsec.yaml

from pub.dartlang.org:

dependencies:
  dart_lut: ^0.0.3

latest from github.com:

dependencies:
  dart_lut:
      git: git://github.com/NiKoTron/dart-lut.git

Usage

generic example:

import 'dart:io';

import 'package:image/image.dart';
import 'package:dart_lut/src/lut.dart';
final lut = LUT.fromString(File('example.cube').readAsStringSync());
await lut.awaitLoading();

Image image = decodeImage(imageFile.readAsBytesSync());

var lutedBytes = lut.applySync(image.getBytes());

var imageLUT = Image.fromBytes(image.width, image.height, lutedBytes);
var outputFile = File('out.jpg')..writeAsBytesSync(encodeJpg(imageLUT));
lut.applyAsStream(image.getBytes()).listen((result) {
  print('#${result.toRadixString(16).padLeft(4, '0')}'); //print ARGB value after applying LUT in HEX format
});

Sample results

Photo by Caique Silva on Unsplash

image by Caique Silva LUTs: KURO B&W by David Morgan Jones, Arabica 12 and Lenox 340 by rocketstock

Photo by sean Kong on Unsplash

image by sean Kong LUTs: KURO B&W by David Morgan Jones, Arabica 12 and Lenox 340 by rocketstock

Libraries

dart_lut