Skip to content
Snippets Groups Projects
Commit 1271ede2 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '8-upgrade-tiles-to-clean-object' into 'master'

Resolve "Upgrade tiles to clean object"

Closes #8

See merge request !5
parents 79e2027a beb3dd56
No related branches found
No related tags found
1 merge request!5Resolve "Upgrade tiles to clean object"
Pipeline #1228 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.4 app.versionName=0.0.5
app.versionCode=4 app.versionCode=5
import 'package:flutter/material.dart';
class Tile {
final Image image;
final double size;
final int currentCol;
final int currentRow;
final int originalCol;
final int originalRow;
Tile(
@required this.image,
@required this.size,
@required this.currentCol,
@required this.currentRow,
@required this.originalCol,
@required this.originalRow,
);
Container widget() {
return Container(
child: Image(
image: this.image.image,
width: this.size,
height: this.size,
fit: BoxFit.fill
)
);
}
}
...@@ -5,14 +5,15 @@ import 'package:flutter/services.dart' show rootBundle; ...@@ -5,14 +5,15 @@ import 'package:flutter/services.dart' show rootBundle;
import 'package:image/image.dart' as imglib; import 'package:image/image.dart' as imglib;
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../entities/tile.dart';
import '../provider/data.dart'; import '../provider/data.dart';
import '../utils/get_images_list.dart'; import '../utils/get_images_list.dart';
class Home extends StatelessWidget { class Home extends StatelessWidget {
static const String id = 'home'; static const String id = 'home';
int _linesCount = 3; int _linesCount = 4;
int _columnsCount = 3; int _columnsCount = 4;
double _selectorImageSize = 200; double _selectorImageSize = 200;
double _tipImageSize = 100; double _tipImageSize = 100;
...@@ -83,7 +84,7 @@ class Home extends StatelessWidget { ...@@ -83,7 +84,7 @@ class Home extends StatelessWidget {
); );
} }
Future<List<Image>> splitImageInTiles(Data myProvider) async { Future<List<Tile>> splitImageInTiles(Data myProvider) async {
String imageAsset = getImageAssetName(myProvider.image); String imageAsset = getImageAssetName(myProvider.image);
Uint8List imageData = (await rootBundle.load(imageAsset)) Uint8List imageData = (await rootBundle.load(imageAsset))
.buffer .buffer
...@@ -94,35 +95,31 @@ class Home extends StatelessWidget { ...@@ -94,35 +95,31 @@ class Home extends StatelessWidget {
int width = (image.width / _linesCount).round(); int width = (image.width / _linesCount).round();
int height = (image.height / _columnsCount).round(); int height = (image.height / _columnsCount).round();
List<imglib.Image> parts = List<imglib.Image>(); List<Tile> tiles = List<Tile>();
for (int i = 0; i < _linesCount; i++) { for (int i = 0; i < _linesCount; i++) {
for (int j = 0; j < _columnsCount; j++) { for (int j = 0; j < _columnsCount; j++) {
parts.add(imglib.copyCrop(image, x, y, width, height)); tiles.add(
Tile(
Image.memory(
imglib.encodeJpg(
imglib.copyCrop(image, x, y, width, height)
)
),
_tileImageSize,
j, i,
j, i,
)
);
x += width; x += width;
} }
x = 0; x = 0;
y += height; y += height;
} }
List<Image> tiles = List<Image>();
for (var img in parts) {
tiles.add(Image.memory(imglib.encodeJpg(img)));
}
return tiles; return tiles;
} }
Container _buildImageTileItem(Image tile) {
return Container(
child: Image(
image: tile.image,
width: _tileImageSize,
height: _tileImageSize,
fit: BoxFit.fill
)
);
}
Container _buildTilesetWidget(Data myProvider) { Container _buildTilesetWidget(Data myProvider) {
List tiles = myProvider.tiles; List tiles = myProvider.tiles;
...@@ -139,22 +136,12 @@ class Home extends StatelessWidget { ...@@ -139,22 +136,12 @@ class Home extends StatelessWidget {
width: 2, width: 2,
), ),
children: [ children: [
TableRow(children: [ for (var row = 0; row < _linesCount; row++)
Column(children: [_buildImageTileItem(tiles[tileIndex++])]), TableRow(children: [
Column(children: [_buildImageTileItem(tiles[tileIndex++])]), for (var col = 0; col < _columnsCount; col++)
Column(children: [_buildImageTileItem(tiles[tileIndex++])]), Column(children: [tiles[tileIndex++].widget()]),
]), ]),
TableRow(children: [ ]
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
]),
TableRow(children: [
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
Column(children: [_buildImageTileItem(tiles[tileIndex++])]),
]),
],
); );
return Container( return Container(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment