From 02dd66516d8da7fb5f927249529e72eb00785bf0 Mon Sep 17 00:00:00 2001 From: "Michael W. Aziz" Date: Fri, 12 Sep 2025 19:24:14 -0400 Subject: [PATCH] [FEAT] working on the image widget for dynamic memory management and caching. --- lib/src/Widgets/src/image.widget.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/src/Widgets/src/image.widget.dart b/lib/src/Widgets/src/image.widget.dart index 4790a40..eaed095 100644 --- a/lib/src/Widgets/src/image.widget.dart +++ b/lib/src/Widgets/src/image.widget.dart @@ -1,5 +1,7 @@ //s1 Imports //s2 Core Package Imports +import 'dart:ui'; + import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'dart:convert'; @@ -301,9 +303,10 @@ class AstromicImage extends StatelessWidget { // imageQuality is used as a downscale factor: 1.0 -> full target resolution, 0.5 -> half resolution final double factor = imageQuality.clamp(0.1, 1.0); - // If size is infinite for a dimension, we skip resize for that dim (pass 0) - final int? targetWidth = size.width.isFinite ? (size.width * factor).clamp(1, 4096).toInt() : null; - final int? targetHeight = size.height.isFinite ? (size.height * factor).clamp(1, 4096).toInt() : null; + final double dpr = PlatformDispatcher.instance.views.first.devicePixelRatio; + + final int? targetWidth = size.width.isFinite ? (size.width * factor * dpr).clamp(1, 4096).toInt() : null; + final int? targetHeight = size.height.isFinite ? (size.height * factor * dpr).clamp(1, 4096).toInt() : null; ImageProvider baseProvider; switch (type) {