Skip to content

Commit

Permalink
rename image_rs -> image_ops
Browse files Browse the repository at this point in the history
  • Loading branch information
juancastillo0 committed Mar 4, 2024
1 parent 8d6f05d commit 6dc89ca
Show file tree
Hide file tree
Showing 29 changed files with 149 additions and 149 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ exclude = [
"packages/rust_threads_example",
"packages/dart_wit_component/wasm_wit_component/example/rust_wit_component_example/Cargo.toml",
"packages/wasm_packages/rust_crypto/rust_crypto_wasm/Cargo.toml",
"packages/wasm_packages/image_rs/image_rs_wasm/Cargo.toml",
"packages/wasm_packages/image_ops/image_ops_wasm/Cargo.toml",
"packages/wasm_packages/compression_rs/compression_rs_wasm/Cargo.toml",
"packages/wasm_packages/wasm_parser/wasm_parser_wasm/Cargo.toml",
"packages/wasm_packages/typesql_parser/typesql_parser_wasm/Cargo.toml",
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Currently it uses the [`wasmtime 14.0`](https://github.com/bytecodealliance/wasm
| [![version](https://img.shields.io/pub/v/wasm_run_flutter.svg)](https://pub.dev/packages/wasm_run_flutter) | [wasm_run_flutter](./packages/wasm_run_flutter/) | Native libraries to use `package:wasm_run` in Flutter projects |
| [![version](https://img.shields.io/pub/v/wasm_wit_component.svg)](https://pub.dev/packages/wasm_wit_component) | [wasm_wit_component](./packages/dart_wit_component/wasm_wit_component/) | Wit bindings and code generator for Wasm components |
| [![version](https://img.shields.io/pub/v/compression_rs.svg)](https://pub.dev/packages/compression_rs) | [compression_rs](./packages/wasm_packages/compression_rs/) | Compression, decompression, zip and tar achieves (brotli, lz4, zstd, gzip, zlib, ...) |
| [![version](https://img.shields.io/pub/v/image_rs.svg)](https://pub.dev/packages/image_rs) | [image_rs](./packages/wasm_packages/image_rs/) | Enconding, deconding, transformations and operations over multiple image formats (png, jpeg, ico, gif, bmp, tiff, webp, avif, tga, farbfeld, ...) |
| [![version](https://img.shields.io/pub/v/image_ops.svg)](https://pub.dev/packages/image_ops) | [image_ops](./packages/wasm_packages/image_ops/) | Enconding, deconding, transformations and operations over multiple image formats (png, jpeg, ico, gif, bmp, tiff, webp, avif, tga, farbfeld, ...) |
| [![version](https://img.shields.io/pub/v/rust_crypto.svg)](https://pub.dev/packages/rust_crypto) | [rust_crypto](./packages/wasm_packages/rust_crypto/) | Hashes, Hmacs, Argon2 Passwords and AES-GCM-SIV encryption. Digests for sha1, sha2, md5, blake3, crc32 |
| [![version](https://img.shields.io/pub/v/wasm_parser.svg)](https://pub.dev/packages/wasm_parser) | [wasm_parser](./packages/wasm_packages/wasm_parser/) | Wasm, Wat and Wit parser, validator, printer and Wasm component tools |
| [![version](https://img.shields.io/pub/v/y_crdt.svg)](https://pub.dev/packages/y_crdt) | [y_crdt](./packages/wasm_packages/y_crdt/) | y.js (https://github.com/yjs/yjs) Dart port, a CRDT implementation. CRDTs allow for local, offline editing and synchronization of shared data. |
Expand Down
8 changes: 4 additions & 4 deletions packages/dart_wit_component/src/generate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -478,13 +478,13 @@ default world host {
}

#[test]
pub fn generate_image_rs() {
pub fn generate_image_ops() {
let path = format!(
"{}/../wasm_packages/image_rs/image_rs_wasm/wit/image-rs.wit",
"{}/../wasm_packages/image_ops/image_ops_wasm/wit/image-ops.wit",
PACKAGE_DIR
);
let output_path = format!(
"{}/../wasm_packages/image_rs/lib/src/image_rs_wit.gen.dart",
"{}/../wasm_packages/image_ops/lib/src/image_ops_wit.gen.dart",
PACKAGE_DIR
);
parse_and_write_generation(
Expand Down Expand Up @@ -611,7 +611,7 @@ default world host {
parse_generator();
parse_wit_types();
parse_wit_types_big_int();
generate_image_rs();
generate_image_ops();
generate_compression_rs();
generate_compression_rs_worker();
generate_rust_crypto();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ import 'package:file_system_access/file_system_access.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_example/flutter_utils.dart';
import 'package:flutter_example/image_rs_state.dart';
import 'package:flutter_example/image_ops_state.dart';
import 'package:flutter_example/state.dart';
import 'package:image_rs/image_rs.dart' as image_rs;
import 'package:image_ops/image_ops.dart' as image_ops;

class ImageRsPage extends StatelessWidget {
const ImageRsPage({super.key});
class ImageOpsPage extends StatelessWidget {
const ImageOpsPage({super.key});

@override
Widget build(BuildContext context) {
final imageRsLoader = Inherited.get<GlobalState>(context).imageRs;
final state = imageRsLoader.value;
final imageOpsLoader = Inherited.get<GlobalState>(context).imageOps;
final state = imageOpsLoader.value;
if (state == null) {
return const CircularProgressIndicator();
}

void Function() op(image_rs.ImageRef Function(image_rs.ImageRef) exec) =>
void Function() op(image_ops.ImageRef Function(image_ops.ImageRef) exec) =>
() => state.op(exec);

const imageFileType = FilePickerAcceptType(
Expand Down Expand Up @@ -77,15 +77,15 @@ class ImageRsPage extends StatelessWidget {
...([
(
90,
state.imageRs.operations.rotate90,
state.imageOps.operations.rotate90,
),
(
180,
state.imageRs.operations.rotate180,
state.imageOps.operations.rotate180,
),
(
270,
state.imageRs.operations.rotate270,
state.imageOps.operations.rotate270,
)
]).map(
(e) => TextButton(
Expand Down Expand Up @@ -117,7 +117,7 @@ class ImageRsPage extends StatelessWidget {
DropdownButtonFormField(
value: values.filterType,
onChanged: (f) => values.setFilterType(f!),
items: image_rs.FilterType.values
items: image_ops.FilterType.values
.map(
(e) => DropdownMenuItem(
value: e,
Expand Down Expand Up @@ -192,7 +192,7 @@ class ImageRsPage extends StatelessWidget {
),
TextButton(
onPressed: () {
final extensions = state.imageRs
final extensions = state.imageOps
.formatExtensions(format: state.format);
downloadFile(
'image.${extensions.firstOrNull ?? ''}',
Expand All @@ -204,8 +204,8 @@ class ImageRsPage extends StatelessWidget {
DropdownButtonFormField(
value: state.format,
onChanged: (f) => state.setFormat(f!),
items: image_rs.ImageFormat.values
.where((e) => e != image_rs.ImageFormat.unknown)
items: image_ops.ImageFormat.values
.where((e) => e != image_ops.ImageFormat.unknown)
.map(
(e) => DropdownMenuItem(
value: e,
Expand All @@ -217,8 +217,8 @@ class ImageRsPage extends StatelessWidget {
DropdownButtonFormField(
value: state.color,
onChanged: (f) => state.setColor(f!),
items: image_rs.ColorType.values
.where((e) => e != image_rs.ColorType.unknown)
items: image_ops.ColorType.values
.where((e) => e != image_ops.ColorType.unknown)
.map(
(e) => DropdownMenuItem(
value: e,
Expand Down Expand Up @@ -291,7 +291,7 @@ class DoubleInput extends StatelessWidget {

class ImgOp {
final String name;
final image_rs.ImageRef Function(image_rs.ImageRef) exec;
final image_ops.ImageRef Function(image_ops.ImageRef) exec;
final Widget? fields;

ImgOp(this.name, this.exec, {this.fields});
Expand All @@ -305,8 +305,8 @@ class ImageInfo extends StatelessWidget {
required this.length,
});

final image_rs.ImageRef ref;
final image_rs.ImageFormat format;
final image_ops.ImageRef ref;
final image_ops.ImageFormat format;
final int length;

@override
Expand Down Expand Up @@ -343,74 +343,74 @@ class ImageInfo extends StatelessWidget {
// /// Replace the contents of an image at a given coordinate (x, y)
// replace: func(image-ref: image-ref, other: image-ref, x: u32, y: u32) -> image-ref

List<ImgOp> imageOps(ImageRsState state) {
List<ImgOp> imageOps(ImageOpsState state) {
final values = state.values;
return [
ImgOp(
'flipVertical',
(ref) => state.imageRs.operations.flipVertical(imageRef: ref),
(ref) => state.imageOps.operations.flipVertical(imageRef: ref),
),
ImgOp(
'flipHorizontal',
(ref) => state.imageRs.operations.flipHorizontal(imageRef: ref),
(ref) => state.imageOps.operations.flipHorizontal(imageRef: ref),
),
ImgOp(
'grayscale',
(ref) => state.imageRs.operations.grayscale(imageRef: ref),
(ref) => state.imageOps.operations.grayscale(imageRef: ref),
),
ImgOp(
'invert',
(ref) => state.imageRs.operations.invert(imageRef: ref),
(ref) => state.imageOps.operations.invert(imageRef: ref),
),
// ImgOp(
// 'rotate90',
// (ref) => state.imageRs.operations.rotate90(imageRef: ref),
// (ref) => state.imageOps.operations.rotate90(imageRef: ref),
// ),
// ImgOp(
// 'rotate180',
// (ref) => state.imageRs.operations.rotate180(imageRef: ref),
// (ref) => state.imageOps.operations.rotate180(imageRef: ref),
// ),
// ImgOp(
// 'rotate270',
// (ref) => state.imageRs.operations.rotate270(imageRef: ref),
// (ref) => state.imageOps.operations.rotate270(imageRef: ref),
// ),
ImgOp(
'blur',
(ref) => state.imageRs.operations.blur(imageRef: ref, value: values.blur),
(ref) => state.imageOps.operations.blur(imageRef: ref, value: values.blur),
fields: DoubleInput(onChanged: values.setBlur),
),
ImgOp(
'brighten',
(ref) => state.imageRs.operations
(ref) => state.imageOps.operations
.brighten(imageRef: ref, value: values.brighten),
fields: IntInput(onChanged: values.setBrighten),
),
ImgOp(
'huerotate',
(ref) => state.imageRs.operations
(ref) => state.imageOps.operations
.huerotate(imageRef: ref, value: values.huerotate),
fields: IntInput(onChanged: values.setHuerotate),
),
ImgOp(
'contrast',
(ref) => state.imageRs.operations
(ref) => state.imageOps.operations
.adjustContrast(imageRef: ref, c: values.contrast),
fields: DoubleInput(onChanged: values.setContrast),
),
ImgOp(
'crop',
(ref) =>
state.imageRs.operations.crop(imageRef: ref, imageCrop: values.crop),
state.imageOps.operations.crop(imageRef: ref, imageCrop: values.crop),
),
ImgOp(
'resize',
(ref) => values.keepAspectRatio
? state.imageRs.operations.resize(
? state.imageOps.operations.resize(
imageRef: ref,
size: values.size,
filter: values.filterType,
)
: state.imageRs.operations.resizeExact(
: state.imageOps.operations.resizeExact(
imageRef: ref,
size: values.size,
filter: values.filterType,
Expand All @@ -419,8 +419,8 @@ List<ImgOp> imageOps(ImageRsState state) {
ImgOp(
'thumbnail',
(ref) => values.keepAspectRatio
? state.imageRs.operations.thumbnail(imageRef: ref, size: values.size)
: state.imageRs.operations
? state.imageOps.operations.thumbnail(imageRef: ref, size: values.size)
: state.imageOps.operations
.thumbnailExact(imageRef: ref, size: values.size),
),
];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import 'package:flutter/foundation.dart';
import 'package:flutter_example/flutter_utils.dart';
import 'package:image_rs/image_rs.dart';
import 'package:image_ops/image_ops.dart';

class ImageRsState extends ChangeNotifier with ErrorNotifier {
ImageRsState(this.imageRs);
class ImageOpsState extends ChangeNotifier with ErrorNotifier {
ImageOpsState(this.imageOps);

final ImageRsWorld imageRs;
final ImageOpsWorld imageOps;
bool showOperations = true;
final values = ImageRsStateValues();
final values = ImageOpsStateValues();
ImageFormat format = ImageFormat.png;
ColorType? get color => ref?.color;
Uint8List? bytes;
Expand All @@ -19,19 +19,19 @@ class ImageRsState extends ChangeNotifier with ErrorNotifier {
final prevRef = ref!;
final newRef = exec(prevRef);
if (previousRef != null) {
imageRs.disposeImage(image: previousRef!).unwrap();
imageOps.disposeImage(image: previousRef!).unwrap();
}
previousRef = prevRef;
ref = newRef;
// final newImage = imageRs.copyImageBuffer(imageRef: newRef);
// final newImage = imageOps.copyImageBuffer(imageRef: newRef);
// bytes = newImage.bytes;
_updateBytes(format);
}

bool _updateBytes(ImageFormat format) {
if (ref == null) return false;
final newImage =
imageRs.convertFormat(image: ref!, format: format).mapErr(setError).ok;
imageOps.convertFormat(image: ref!, format: format).mapErr(setError).ok;
if (newImage != null) {
this.format = format;
bytes = newImage;
Expand All @@ -41,15 +41,15 @@ class ImageRsState extends ChangeNotifier with ErrorNotifier {
}

void loadImage(String name, Uint8List bytes) {
imageRs
imageOps
.guessBufferFormat(buffer: bytes)
.map((ok) => format = ok)
.mapErr(setError);
final result = imageRs.readBuffer(buffer: bytes).mapErr(setError);
final result = imageOps.readBuffer(buffer: bytes).mapErr(setError);
if (result.isOk) {
filename = name;
if (previousRef != null) {
imageRs.disposeImage(image: previousRef!).unwrap();
imageOps.disposeImage(image: previousRef!).unwrap();
}
previousRef = ref;
ref = result.ok;
Expand All @@ -70,7 +70,7 @@ class ImageRsState extends ChangeNotifier with ErrorNotifier {

void setColor(ColorType color) {
if (this.color == color || ref == null) return;
op((ref) => imageRs.convertColor(color: color, image: ref));
op((ref) => imageOps.convertColor(color: color, image: ref));
}

void revert() {
Expand All @@ -82,7 +82,7 @@ class ImageRsState extends ChangeNotifier with ErrorNotifier {
}
}

class ImageRsStateValues extends ChangeNotifier {
class ImageOpsStateValues extends ChangeNotifier {
double blur = 0;
void setBlur(double d) {
blur = d;
Expand Down
10 changes: 5 additions & 5 deletions packages/wasm_packages/flutter_example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_example/compression_rs_page.dart';
import 'package:flutter_example/flutter_utils.dart';
import 'package:flutter_example/image_rs_page.dart';
import 'package:flutter_example/image_ops_page.dart';
import 'package:flutter_example/rust_crypto_page.dart';
import 'package:flutter_example/typesql_parser_page.dart';
import 'package:flutter_example/state.dart';
Expand Down Expand Up @@ -55,7 +55,7 @@ class MyHomePage extends StatefulWidget {
enum AppTab {
wasmParser,
compressionRs,
imageRs,
imageOps,
rustCrypto,
sqlParser;

Expand All @@ -71,9 +71,9 @@ enum AppTab {
loader: state.compressionRs,
child: const CompressionRsPage(),
),
AppTab.imageRs => LoaderWidget(
loader: state.imageRs,
child: const ImageRsPage(),
AppTab.imageOps => LoaderWidget(
loader: state.imageOps,
child: const ImageOpsPage(),
),
AppTab.rustCrypto => LoaderWidget(
loader: state.rustCrypto,
Expand Down
10 changes: 5 additions & 5 deletions packages/wasm_packages/flutter_example/lib/state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import 'package:compression_rs/compression_rs.dart';
import 'package:compression_rs/compression_rs_in_mem_worker.dart'
as compression_rs;
import 'package:flutter/foundation.dart' show ChangeNotifier, ValueNotifier;
import 'package:flutter_example/image_rs_state.dart';
import 'package:flutter_example/image_ops_state.dart';
import 'package:flutter_example/typesql_parser_state.dart';
import 'package:flutter_example/wasm_parser_state.dart';
import 'package:image_rs/image_rs.dart';
import 'package:image_ops/image_ops.dart';
import 'package:rust_crypto/rust_crypto.dart';
import 'package:typesql_parser/typesql_parser.dart';
import 'package:typesql/sqlite.dart';
Expand All @@ -31,8 +31,8 @@ class GlobalState extends ChangeNotifier {
imports: const CompressionRsWorldImports(),
).then(CompressionRsState.new),
);
late final imageRs = FutureLoader(
() => createImageRs(wasiConfig: wasiConfig).then(ImageRsState.new),
late final imageOps = FutureLoader(
() => createImageOps(wasiConfig: wasiConfig).then(ImageOpsState.new),
);
late final rustCrypto = FutureLoader(
() => rustCryptoInstance(wasiConfig: wasiConfig).then(RustCryptoState.new),
Expand Down Expand Up @@ -61,7 +61,7 @@ class GlobalState extends ChangeNotifier {

@override
void dispose() {
// TODO: imageRs?.disposeImage();
// TODO: imageOps?.disposeImage();
super.dispose();
}
}
Expand Down
Loading

0 comments on commit 6dc89ca

Please sign in to comment.