图像在Flutter中被放大

问题描述 投票:0回答:1

我将图像存储为SQLite中的斑点。其他工具,例如用于SQLite的DB浏览器,显示图像本身未升级。

我使用以下代码从原始图像按比例缩小了它们。

final thumbnailData = encodeJpg(copyResize(
  decodeImage(imageData),
  width: 400,
  interpolation: Interpolation.average
));

在Flutter中显示时,它们明显放大了。

@override
Widget build(BuildContext context) {
  return Image.memory(_getThumbnailData());
}

Image.memory()具有一个scale参数,默认为1.0。手动设置以确保也无济于事。

我必须将其设置为某些估计的值,例如2.0,以获得正确的比例,但我不明白为什么,而且2.0实际上是“未缩放”的,还是略微偏离。

如何告诉Flutter照原样显示图像?

flutter flutter-image
1个回答
1
投票

Flutter使用逻辑像素而不是物理像素。

设备像素也称为物理像素。逻辑像素也称为与设备无关或与分辨率无关的像素。

如何在物理像素和逻辑像素之间转换?

要在物理像素和逻辑像素之间转换,可以使用devicePixelRatio

每个逻辑像素的设备像素数。此数字可能不是2的幂。实际上,它甚至可能不是整数。例如,Nexus 6的设备像素比为3.5。

MediaQuery.of(context).devicePixelRatio
© www.soinside.com 2019 - 2024. All rights reserved.