setHeightsFromImage method
Sets the height values from an image. Currently only supported in browser.
Implementation
void setHeightsFromImage(Image image, Vec3 scale) async{
final x = scale.x;
final y = scale.y;
final z = scale.z;
// final canvas = document.createElement('canvas');
// canvas.width = image.width;
// canvas.height = image.height;
// final context = canvas.getContext('2d')!;
// context.drawImage(image, 0, 0);
final toByteData = await image.toByteData();
final imageData = toByteData!.buffer.asUint8List();//context.getImageData(0, 0, image.width, image.height);
final matrix = data;
matrix.clear();
elementSize = x.abs() ~/ image.width;
for (int i = 0; i < image.height; i++) {
final List<double> row = [];
for (int j = 0; j < image.width; j++) {
final a = imageData[(i * image.height + j) * 4];
final b = imageData[(i * image.height + j) * 4 + 1];
final c = imageData[(i * image.height + j) * 4 + 2];
final height = ((a + b + c) / 4 / 255) * z;
if (x < 0) {
row.add(height);
} else {
row.insert(0,height);
}
}
if (y < 0) {
matrix.insert(0,row);
} else {
matrix.add(row);
}
}
updateMaxValue();
updateMinValue();
update();
}