簡體   English   中英

Wpf:使圖像顯示像素在原始尺寸下完美

[英]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圖像的PixelWidthPixelHeight ,您可以綁定其WidthHeight ,如下所示。

還將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM