From 9d700744adbec133308b1adf82464f275d9aa22e Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Sat, 10 Jun 2023 15:12:53 -0700 Subject: [PATCH 1/6] Switch rendering to surface, decrease image size --- .../app/src/main/kotlin/com/example/example/MainActivity.kt | 2 +- .../main_page_list_images_inspector.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 484a3f3..e035c65 100644 --- a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -4,5 +4,5 @@ import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.RenderMode class MainActivity: FlutterActivity() { - override fun getRenderMode(): RenderMode = RenderMode.texture + override fun getRenderMode(): RenderMode = RenderMode.surface } diff --git a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart index ad89df5..69da43f 100644 --- a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart +++ b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart @@ -34,7 +34,7 @@ class PageListImagesInspectorDemo extends StatefulWidget { } class _PageListImagesInspectorDemoState extends State with TickerProviderStateMixin { - static final _naturalPageSize = const Size(8.5, 11) * 72; + static final _naturalPageSize = const Size(8.5, 11); final _pageViewportKey = GlobalKey(); late PageListViewportController _viewportController; From 1246680c0740d4b67289c97cbbaf900a788fc6b7 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Wed, 14 Jun 2023 12:30:38 -0700 Subject: [PATCH 2/6] Make page size 1/5 of original scale amount This makes zooming work while keeping performance up. --- .../main_page_list_images_inspector.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart index 69da43f..26d608d 100644 --- a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart +++ b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart @@ -34,7 +34,7 @@ class PageListImagesInspectorDemo extends StatefulWidget { } class _PageListImagesInspectorDemoState extends State with TickerProviderStateMixin { - static final _naturalPageSize = const Size(8.5, 11); + static final _naturalPageSize = const Size(8.5, 11) * 14.4; final _pageViewportKey = GlobalKey(); late PageListViewportController _viewportController; From 78ed7237c0e0f986e9d0b975d521337837463984 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Wed, 14 Jun 2023 12:51:40 -0700 Subject: [PATCH 3/6] Resize images in the image cache --- example/lib/pages_with_tiled_images/image_cache.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/example/lib/pages_with_tiled_images/image_cache.dart b/example/lib/pages_with_tiled_images/image_cache.dart index 3091e6c..e9df74f 100644 --- a/example/lib/pages_with_tiled_images/image_cache.dart +++ b/example/lib/pages_with_tiled_images/image_cache.dart @@ -474,9 +474,14 @@ class DocumentPageTileImagePainter implements ImagePainter { Future _paintImage(PageRegionRenderRequest request, TileIndex tileIndex) async { final imageCompleter = Completer(); final index = (tileIndex.col + tileIndex.row) % _imageAssets.length; - final imageStream = AssetImage(_imageAssets[index]).resolve( + final imageStream = ResizeImage( + AssetImage(_imageAssets[index]), + width: 1024, + height: 768, + ).resolve( const ImageConfiguration(), ); + final listener = ImageStreamListener((ImageInfo imageInfo, bool synchronousCall) { imageCompleter.complete(imageInfo.image); }); From 1b5c39562a49b86ec12fbc6ccea0a18cae984c30 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Wed, 14 Jun 2023 13:07:52 -0700 Subject: [PATCH 4/6] Resize images with the fit policy --- example/lib/pages_with_tiled_images/image_cache.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/example/lib/pages_with_tiled_images/image_cache.dart b/example/lib/pages_with_tiled_images/image_cache.dart index e9df74f..7686a4d 100644 --- a/example/lib/pages_with_tiled_images/image_cache.dart +++ b/example/lib/pages_with_tiled_images/image_cache.dart @@ -476,8 +476,7 @@ class DocumentPageTileImagePainter implements ImagePainter { final index = (tileIndex.col + tileIndex.row) % _imageAssets.length; final imageStream = ResizeImage( AssetImage(_imageAssets[index]), - width: 1024, - height: 768, + policy: ResizeImagePolicy.fit, ).resolve( const ImageConfiguration(), ); From 636b03b5bab08b79eb9a4aa6f24118263615b67a Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Wed, 14 Jun 2023 13:32:46 -0700 Subject: [PATCH 5/6] Change page size scale back to 72 --- .../main_page_list_images_inspector.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart index 26d608d..ad89df5 100644 --- a/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart +++ b/example/lib/pages_with_tiled_images/main_page_list_images_inspector.dart @@ -34,7 +34,7 @@ class PageListImagesInspectorDemo extends StatefulWidget { } class _PageListImagesInspectorDemoState extends State with TickerProviderStateMixin { - static final _naturalPageSize = const Size(8.5, 11) * 14.4; + static final _naturalPageSize = const Size(8.5, 11) * 72; final _pageViewportKey = GlobalKey(); late PageListViewportController _viewportController; From aaed7d9771787c87f6cd56d65268577323bce12b Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Wed, 14 Jun 2023 14:08:29 -0700 Subject: [PATCH 6/6] Scale image to a width of 400 Result: https://www.youtube.com/watch?v=lBgnfwWU35I --- example/lib/pages_with_tiled_images/image_cache.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/example/lib/pages_with_tiled_images/image_cache.dart b/example/lib/pages_with_tiled_images/image_cache.dart index 7686a4d..a05983e 100644 --- a/example/lib/pages_with_tiled_images/image_cache.dart +++ b/example/lib/pages_with_tiled_images/image_cache.dart @@ -476,6 +476,7 @@ class DocumentPageTileImagePainter implements ImagePainter { final index = (tileIndex.col + tileIndex.row) % _imageAssets.length; final imageStream = ResizeImage( AssetImage(_imageAssets[index]), + width: 400, policy: ResizeImagePolicy.fit, ).resolve( const ImageConfiguration(),