代码之家  ›  专栏  ›  技术社区  ›  Hank

调整/缩放WPF图像时的失真

  •  1
  • Hank  · 技术社区  · 16 年前

    我有一个显示图像的程序,用户可以在窗口中调整图像的大小(例如,通过滚动鼠标滚轮)。我使用RenderTransform缩放图像,如下所示:

    <Image x:Name="CurrentImage">
        <Image.RenderTransform>
            <TransformGroup>
                <TranslateTransform x:Name="Translate" X="0" Y="0"/>
                <ScaleTransform x:Name="Scale" ScaleX="1" ScaleY="1"/>
            </TransformGroup>
        </Image.RenderTransform>
    </Image>
    

    那我就换衣服 ScaleX ScaleY 属性。图像按预期调整大小。

    其他一些细节:

    • RenderTransform 只需使用 Height 和 Width

    以前有人见过这种行为吗,你有什么想法吗?

    原始尺寸的20%:

    alt text http://maylark.com/Scale20.png

    原始尺寸的26%:

    alt text http://maylark.com/Scale26.png

    原始尺寸的41%:

    alt text http://maylark.com/Scale41.png

    原始尺寸的64%:

    alt text http://maylark.com/Scale64.png

    原始尺寸的80%:

    alt text http://maylark.com/Scale80.png

    3 回复  |  直到 16 年前
        1
  •  2
  •   Hank    16 年前

    因此,在尝试隔离问题很多小时之后,我决定重新开始一个新的visualstudio解决方案,然后一个接一个地将组件放回去。所有的东西都在新的解决方案中工作,最后我把所有的类都放回去了,所有的东西都还在工作!

    我把这个贴出来是希望能给别人省点时间。

        2
  •  0
  •   Abe Heidebrecht    16 年前
        3
  •  0
  •   Andrew Bienert    16 年前

    尽量消除变数。操作系统、硬件和驱动程序(如第一个答案中所指出的),以及您正在使用的图像格式。你提到不是所有的图片都有这个问题?这些图像格式有什么不同吗?例如钻头深度、颜色等。 你也可以在其他工具中调整图像的大小,比如IrfanView,并产生同样的问题。这可能有助于指出驱动程序问题。

    推荐文章