我从一张较大的图像中剪切了两张图像。两幅剪切图像均为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;
}
答案 0 :(得分:-1)
图像是显示图片的控件。 你不能只设置图像控件的高度和宽度吗?
<Image Height="100" Width="100"