[英]Wpf: Making image display pixel perfect at original size
我有一個 24x24 的圖像。 如果我沒有在 xaml 中輸入寬度和高度並設置 Stretch="None" 我的 24x24 將最大為 32x32。 “不拉伸”不應該意味着圖像以 24x24 顯示嗎?
如果我強制將圖像設置為 24x24,那么我會得到原始圖像中不存在的額外像素。
我希望圖像以 100% 的大小/比例顯示,並帶有“像素完美”/“點過濾”渲染。
我在一個相關問題上讀到,一些圖像具有 96 DPI 和一些 72,這可能會導致奇怪的行為。 我嘗試按照教程檢查圖像的 DPI,但教程所說的位置(紅線處)沒有 DPI 信息:
無論哪種方式,即使我修復了圖像 DPI 與我的屏幕 DPI 相同(也不知道如何檢查),其他人的屏幕上不會有問題嗎? 我不希望圖像僅在 96 DPI 屏幕上像素完美。 我希望它總是像素完美,我總是希望圖像的 1 個像素對應於應用程序/屏幕上的 1 個像素。
這在 WPF 中不可能實現嗎? 如果是的話,我怎么能至少讓它尷尬的額外像素是“均勻的”(看看中間的圖像,它在寬度上有額外的像素但沒有高度)並且所有圖像都以相同的方式縮放(取決於 window 中圖像的位置,額外的像素位於不同的位置,我希望同一圖像的每個實例看起來都相同)。
為了將Image
元素的大小設置為其Source
圖像的PixelWidth
和PixelHeight
,您可以綁定其Width
和Height
,如下所示。
還將NearestNeighbor
RenderOptions.BitmapScalingMode
避免像素插值。
<Image ...
Width="{Binding Source.PixelWidth, RelativeSource={RelativeSource Self}}"
Height="{Binding Source.PixelHeight, RelativeSource={RelativeSource Self}}"
RenderOptions.BitmapScalingMode="NearestNeighbor"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.