gpt4 book ai didi

windows-phone-7 - 为动态磁贴调整图像大小 - WriteableBitmapEx

转载 作者:行者123 更新时间:2023-12-04 06:58:51 25 4
gpt4 key购买 nike

**
找到解决方案
由于这是一个图 block ,图像将始终被拉伸(stretch)到 173 x 173!
为避免这种情况,首先创建一个 173 x 173 的虚拟模型,并将其与调整后的模型合并!

Rect rect = new Rect(0.0, 0.0, width, height);
WriteableBitmap bitmapDummy = new WriteableBitmap(173, 173);
bitmapDummy.Blit(rect, resized, rect, WriteableBitmapExtensions.BlendMode.None);

**

好吧,我已经创建了一个后台代理来更新我的 WP7 应用程序的动态磁贴。但无论我尝试调整它的大小,我都没有得到好的结果!

有什么建议吗?目前我有以下代码,但我也尝试了 135 x 173 和其他插值。

WriteableBitmap writeableBitmap = new WriteableBitmap(bitmapImage);
var resized = writeableBitmap.Resize(173, 173, System.Windows.Media.Imaging.WriteableBitmapExtensions.Interpolation.Bilinear);

下面还加了一个小矩形,用来显示app的标题!它的高度为 40 像素,如果图像在上方被裁剪,那就太好了。实际图像始终为 250 x 321 像素

Current Tile

Actual image

最佳答案

您的问题是您没有将宽度/高度计算为正确的 Aspect ratio .

因此,要获得 1:1 的比例,您需要宽度为 134.735 像素,高度为 173 像素。

这可以通过首先确定哪边最大来完成

var aspect = Math.Max(bitmapImage.Width, bitmapImage.Height)
var ratio = largest / 173;
var width = width / ratio;
var height = height / ratio;

var resizedImage = writeableBitmap.Resize(width, height, System.Windows.Media.Imaging.WriteableBitmapExtensions.Interpolation.Bilinear);

并记住设置 Stretch="Uniform" 以避免将图像拉伸(stretch)到不必要的比例。

要创建 173x173 像素的图像,并在顶部应用其他图像,请使用 WriteableBitmapEx 中的 Blit 函数

var tileImage = new WriteableBitmap(173, 173, ...)
tileImage.Blit(new Rect(width, height), resizedImage, new Rect(width, height), BlendMode.None);

关于windows-phone-7 - 为动态磁贴调整图像大小 - WriteableBitmapEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8684474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com