【问题标题】:Image resizing relative to image center相对于图像中心调整图像大小
【发布时间】:2013-03-09 14:18:25
【问题描述】:

我目前正在开发一个基于 Kinect 的项目,但我找不到如何调整相对于图像中心的图像大小的方法。当我移动双手时,我设法更新了图像的宽度和高度,并调整了图片的大小,但相对于左上角。所以,基本上如果你想象一个矩形,左上角总是固定的,而其他角是移动的。图片仅在从右到左和从下到上的方向调整大小。

我首先尝试使用 ScaleTransform 来调整图像的大小,在那里我可以指定变换原点(我在图片中间设置),但它不允许在结果中更新图像大小...所以它对我没有用..

所以,如果有人能给我一些关于如何在各个方向动态调整大小的想法,我将不胜感激。也许有一些方法可以将点设置为与左上角不同的值?

提前致谢!

【问题讨论】:

  • 您需要先将图像转换为原点,应用缩放,然后将其转换回原始中心。请参阅this answer 中的 scaleImage() 函数。
  • 感谢您的创意!我也只是想我可以更新边距以在缩放时将图像沿我需要的方向移动,从而给人一种缩放从中心发生的印象。
  • 如果你有办法将原点移动到图像的中心,那就行了。否则,在编码或计算方面,转换到原点并返回不会涉及太多开销(转换矩阵在将它们应用到图像中的点之前会相乘)。

标签: c# image resize


【解决方案1】:

您可以使用RenderTransformOrigin 移动缩放动作的中心点。例如:

<Setter Property="RenderTransformOrigin" Value="0.5, 0.5" />

我有一个类似的问题,与从UserControl 的中心调整 DP 的大小有关。在已接受答案的 cmets 之一中提到了如何从对象的中心调整大小的发现。

Growing UserControl Size with Style Trigger?

【讨论】:

  • 我想我以前见过,但是ScaleTransform的问题是它不会更新图片的缩放宽度和高度。
  • 也许我误解了需求。如果您想拍照并缩小或放大它,ScaleTransform 应该这样做,RenderTransformOrigin 将允许您移动该比例的原点。
猜你喜欢
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 2010-11-20
相关资源
最近更新 更多