gpt4 book ai didi

c# - 在 Windows Phone 中根据颜色裁剪图像的边框

转载 作者:太空狗 更新时间:2023-10-29 19:44:10 26 4
gpt4 key购买 nike

enter image description here

上面是我正在使用的图像。我想要实现的是从图像中删除边框的红色部分。如何在 Windows Phone 中以编程方式实现此目的?我找到了 WriteableBitmapExtensions.Crop() 方法,但我对参数感到困惑(我如何找到图像的 x、y 位置,以及大小和宽度?)

我面临的另一个问题是:我将获得具有不同大小边框的图像,因此我无法对 x 或 y 值进行硬编码。
谁能提出解决方案,或指导我解决问题?

最佳答案

这不是一件小事,而且您还没有与我们分享任何代码,所以我可以给您一些建议。每个 WriteableBitmap 都定义了宽度和高度。您应该可以通过以下方式访问它

wb.PixelWidth;
wb.PixelHeight;

wb 是你的 WriteableBitmap(图片)

话虽如此,使用 WriteableBitmapEx 库裁剪 WriteableBitmap 是微不足道的

var croppedBmp = wb.Crop(10, 10, 300, 220);

如果您的 wb 是 320x240 并且边框的宽度是 10,那么上面的 Crop 调用就可以解决问题 - 您将采用从点 (10,10) 开始到 (310, 230) 结束的内部矩形

现在是您的第二个问题 - 不知道边框的宽度。如果你知道的话会有所帮助

  1. 图片每一边的边框厚度相同
  2. 边框总是只有一种颜色

假设这是真的,你可以想出一个简单的算法(可能不是每次都正确,但你可以测试它并调整),例如,它需要一些随机点

(0,randNumber < wb.PixelHeight), (randNumber < wb.PixelWidth, 0), (wb.PixelWidth, randNumber < wb.PixelHeight), (randNumber < wb.PixelWidth, wb.PixelHeight)

然后向图片的内部移动,只要相邻像素与起始像素的颜色相同即可。您随机获得的分数越多,您做对的机会就越大。这样做的一个明显问题是,图片上的某些东西可能会与边框颜色相同(完全相同),这会使边框看起来比实际更宽。这就是为什么您应该获得更多积分。

如果您展示了一些代码,我很乐意扩展答案。

关于c# - 在 Windows Phone 中根据颜色裁剪图像的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961640/

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