我有一個正在開發的WinRT應用程序,它使用了一堆圖像。在圖像的一部分中,我顯示具有較大版本的圖像縮略圖。在WinRT中調整大小時的圖像像素化
這些縮略圖的圖像源是相應的大圖像,它是1024x768。動態調整大小是爲了Image元素上的縮略圖。我也保持了4:3的寬高比。
這是WinRT調整圖像大小的唯一方法嗎?還是有辦法動態地調整圖像元素的大小,使圖像元素更加優雅,像素更少?
P.S:我無法創建較小版本的圖像,這是因爲縮略圖的大小是動態的,這取決於屏幕上縮略圖的數量和屏幕分辨率。
這是我的自動調整大小代碼。
private void canvasObject()
{
for (int i = 1; i <= maxCards; i++)
{
objectList.Add(i);
}
Double h,w, hp=0,wp=0,hm;
w = ((objectCanvas.ActualWidth/9));
h = (w * (4/3));
hm = ((objectCanvas.ActualHeight/3)-h);
int count = 0;
for (int i = 0; i <= 3;i++)
{
wp = 0;
for (int j = 0; j < 9 && count < maxCards; j++)
{
count++;
Card c = new Card();
ImageSource imgSrc1;
Random rnd = new Random();
int rNum = rnd.Next(1, objectList.Count);
imgSrc1 = new BitmapImage(new Uri(@"ms-appx:/Assets/Images/Alphabets/Cards/" + (char)(objectList[rNum-1] + 96) + ".png", UriKind.Absolute));
c.objectImg.Name = objectList[rNum-1].ToString();
objectList.Remove(objectList[rNum-1]);
c.objectImg.SetValue(Image.SourceProperty, imgSrc1);
c.objectImg.Width = w;
c.objectImg.Height = h;
c.objectImg.Margin = new Thickness(10);
c.objectImg.SetValue(Canvas.LeftProperty,wp);
c.objectImg.SetValue(Canvas.TopProperty, hp);
wp += w;
c.objectImg.Tapped += objectImg_Tapped;
objectCanvas.Children.Add(c.objectImg);
}
hp += h+hm;
}
}
思想,我不覺得這是與代碼中的問題,如XAML一些圖像看起來也即使它們被拉伸到統一的像素化。我甚至嘗試使用較小的圖像來確定它們的尺寸,但顯然我的應用程序中的小圖像正在像素化。但在2560x1440分辨率下運行時,圖像看起來和預期的一樣。
你能表現出你做了什麼一些代碼?你有沒有啓用插值/反鋸齒? – K3N
添加代碼。還增加了我嘗試過的更多信息,但沒有奏效。 –