Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • android/org.benoitharrault.puzzlegame
1 result
Select Git revision
Show changes
Commits on Source (2)
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(
......