Remove image package in thumbnail generation
This commit is contained in:
parent
847a99d0e9
commit
05f188080b
1 changed files with 18 additions and 33 deletions
|
@ -15,7 +15,6 @@ import "dart:ui";
|
|||
// ImageConfiguration;
|
||||
// import 'package:flutter/material.dart' as material show Image;
|
||||
import 'package:flutter/painting.dart' as paint show decodeImageFromList;
|
||||
import 'package:image/image.dart' as img_lib;
|
||||
import 'package:ml_linalg/linalg.dart';
|
||||
import "package:photos/face/model/box.dart";
|
||||
import 'package:photos/models/ml/ml_typedefs.dart';
|
||||
|
@ -493,7 +492,7 @@ Future<Image> resizeAndCenterCropImage(
|
|||
}
|
||||
|
||||
/// Crops an [image] based on the specified [x], [y], [width] and [height].
|
||||
Future<Uint8List> cropImage(
|
||||
Future<Image> cropImage(
|
||||
Image image,
|
||||
ByteData imgByteData, {
|
||||
required int x,
|
||||
|
@ -501,37 +500,26 @@ Future<Uint8List> cropImage(
|
|||
required int width,
|
||||
required int height,
|
||||
}) async {
|
||||
// final newByteData = ByteData(width * height * 4);
|
||||
// for (var h = y; h < y + height; h++) {
|
||||
// for (var w = x; w < x + width; w++) {
|
||||
// final pixel = readPixelColor(image, imgByteData, w, y);
|
||||
// setPixelColor(
|
||||
// Size(width.toDouble(), height.toDouble()),
|
||||
// newByteData,
|
||||
// w,
|
||||
// h,
|
||||
// pixel,
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// final newImage =
|
||||
// decodeImageFromRgbaBytes(newByteData.buffer.asUint8List(), width, height);
|
||||
|
||||
final newImage = img_lib.Image(width: width, height: height);
|
||||
|
||||
final newByteData = ByteData(width * height * 4);
|
||||
for (var h = y; h < y + height; h++) {
|
||||
for (var w = x; w < x + width; w++) {
|
||||
final pixel = readPixelColor(image, imgByteData, w, h);
|
||||
newImage.setPixel(
|
||||
setPixelColor(
|
||||
Size(width.toDouble(), height.toDouble()),
|
||||
newByteData,
|
||||
w - x,
|
||||
h - y,
|
||||
img_lib.ColorRgb8(pixel.red, pixel.green, pixel.blue),
|
||||
pixel,
|
||||
);
|
||||
}
|
||||
}
|
||||
final newImageDataPng = img_lib.encodePng(newImage);
|
||||
final newImage = await decodeImageFromRgbaBytes(
|
||||
newByteData.buffer.asUint8List(),
|
||||
width,
|
||||
height,
|
||||
);
|
||||
|
||||
return newImageDataPng;
|
||||
return newImage;
|
||||
}
|
||||
|
||||
/// Crops an [image] based on the specified [x], [y], [width] and [height].
|
||||
|
@ -1247,7 +1235,6 @@ Future<List<Uint8List>> generateFaceThumbnails(
|
|||
final Image image = await decodeImageFromData(imageData);
|
||||
final ByteData imgByteData = await getByteDataFromImage(image);
|
||||
|
||||
// int i = 0;
|
||||
try {
|
||||
final List<Uint8List> faceThumbnails = [];
|
||||
|
||||
|
@ -1260,7 +1247,7 @@ Future<List<Uint8List>> generateFaceThumbnails(
|
|||
min((faceBox.width * 2).round(), image.width - xCrop);
|
||||
final int heightCrop =
|
||||
min((faceBox.height * 2).round(), image.height - yCrop);
|
||||
final Uint8List faceThumbnail = await cropImage(
|
||||
final Image faceThumbnail = await cropImage(
|
||||
image,
|
||||
imgByteData,
|
||||
x: xCrop,
|
||||
|
@ -1268,12 +1255,11 @@ Future<List<Uint8List>> generateFaceThumbnails(
|
|||
width: widthCrop,
|
||||
height: heightCrop,
|
||||
);
|
||||
// final Uint8List faceThumbnailPng = await encodeImageToUint8List(
|
||||
// faceThumbnail,
|
||||
// format: ImageByteFormat.png,
|
||||
// );
|
||||
faceThumbnails.add(faceThumbnail);
|
||||
// i++;
|
||||
final Uint8List faceThumbnailPng = await encodeImageToUint8List(
|
||||
faceThumbnail,
|
||||
format: ImageByteFormat.png,
|
||||
);
|
||||
faceThumbnails.add(faceThumbnailPng);
|
||||
}
|
||||
stopwatch.stop();
|
||||
log('Face thumbnail generation took: ${stopwatch.elapsedMilliseconds} ms');
|
||||
|
@ -1281,7 +1267,6 @@ Future<List<Uint8List>> generateFaceThumbnails(
|
|||
return faceThumbnails;
|
||||
} catch (e, s) {
|
||||
log('[ImageMlUtils] Error generating face thumbnails: $e, \n stackTrace: $s');
|
||||
// log('[ImageMlUtils] cropImage problematic input argument: ${faceBoxes[i]}');
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue