我从一个较大的图像中剪切了两张图像。两个剪切的图像都是300x148,并且具有96 dpi。
我以这种方式显示它们:
<Image Source="{Binding Image1, Converter={StaticResource imageConverter}}" />
<Image Source="{Binding Image2, Converter={StaticResource imageConverter}}" />
问题是我在视觉上看到了高度的差异。更奇怪的是,当我交换它们时:
<Image Source="{Binding Image2, Converter={StaticResource imageConverter}}" />
<Image Source="{Binding Image1, Converter={StaticResource imageConverter}}" />
高度差发生变化,但仍然存在。
我将一些日志记录放入ImageCoverter
以记录返回值,宽度/高度/dpi 值没有区别。
我没有任何影响图像的样式。
还有其他领域我也应该考虑吗?
编辑这就是我创建 300x148 图像的方式。我传递裁剪后的图像和宽度:
public static Bitmap Scale(Bitmap image, double width)
{
double ratio = width / image.Width;
var newWidth = (int)(image.Width * ratio);
var newHeight = (int)(image.Height * ratio);
var scaledImage = new Bitmap(newWidth, newHeight);
using (var graphics = Graphics.FromImage(scaledImage))
{
graphics.DrawImage(image, 0, 0, newWidth, newHeight);
}
return scaledImage;
}
图像是显示图片的控件。您不能只设置图像控件的高度和宽度吗?
<Image Height="100" Width="100"