我有一个显示图像的程序,用户可以在窗口中调整图像大小(例如通过滚动鼠标滚轮)。我使用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
属性。图像按预期调整大小。
然而,在某些尺度下,图像变得非常扭曲。低于约20%且高于约80%,它显示正常,但对于其间的分辨率,部分或全部图像失真。请参阅下面的屏幕截图。
其他一些细节:
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%:
答案 0 :(得分:2)
因此,在尝试隔离问题数小时之后,我决定重新开始使用新的Visual Studio解决方案并逐个放回组件。一切都在新的解决方案中工作,最后我把所有课程都归还了,一切都还在运行!
原来是构建设置:非功能版本是针对“任何CPU”的多目标版本,但新解决方案的目标是“x86”。
显然,“任何CPU”程序的Windows XP x64图形子系统存在故障,因为切换到x86或在Vista / 7上运行都解决了这个问题。
我已发布此信息,希望能在某个时间节省其他人。
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试消除变量。操作系统,硬件和驱动程序(如第一个答案中所述)以及您正在使用的图像格式。你提到不是所有的图像都有问题吗?这些图像格式有什么不同吗?例如。钻头深度,颜色等 您也可以在其他工具中调整图像大小,比如IrfanView,并创建相同的问题。这可能有助于指出司机问题。
图像渲染的方式看起来很可疑,就像图像的步幅被拧到引擎盖下。