2010-08-04 146 views
1

我有一個圖像(PNG),分辨率爲1600 * 1200(96 dpi)。創建高分辨率圖像

我在圖片上放了一些文字,然後將它保存到一個文件中,使用Silverlight的深度縮放與pivotviewer加載它。放大時文字模糊,我想知道如何讓文字看起來更清晰(只有放大一點)。

這是我與圖像/圖形編程的第一位,所以任何信息將是巨大的(即鏈接,閱讀,概念理解等)

JD。

回答

1

我以前從未使用過這些控件,但最終可能會不得不重寫縮放算法(如果這甚至可能,我不知道)。如果圖像中有文字,而且您沒有使用基於矢量的圖像(SVG,EMF,WMF等),則任何類型的拉伸都會變得模糊。

不同的縮放算法,如果有可能,可以決定如何拉伸像素。對於文本,當圖像調整大小時,您正在尋找稱爲「最近鄰居」或甚至「雙立方」插值的東西。這些方法在處理方面更加昂貴,因此您可能無法像使用默認插值算法(無論它是什麼)那樣獲得平滑的縮放效果。

有一些論壇帖子開始相同的討論,但沒有真正的方向。也許你可以關注他們,看看他們的進步。恐怕我不能有太多的幫助,否則。

http://social.expression.microsoft.com/Forums/en-US/deepzoomcomposer/thread/dee528a2-06ae-4426-b096-5baafec499ff

http://weblogs.asp.net/bleroy/archive/2009/12/10/resizing-images-from-the-server-using-wpf-wic-instead-of-gdi.aspx

在它們指的是不同的插值算法在BitmapScalingMode列舉的最後一個職位。其中一種選擇是NearestNeighbor。還有一些調整大小的圖像的例子。

更新:

this article,筆者考慮看看的方式改變了的Deep Zoom控件使用圖像磚的質量(以及他使用Silverlight!)。筆者有效地改變圖像與代碼在他的項目中的幾行創建方式:

if (bSmoothScaling) 
{ 
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
    g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
    g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
} 

在分配該列表中你可以找到插值模式,我一直提的是,還有一些其他的事情,我沒有意識到。作者確實提到了一切對「高質量」的影響。

希望你能理解概念並以某種方式將它融入到Silverlight中。祝你好運!

+0

感謝Cory的回覆。在圖形編碼方面接近於零的知識,你的幫助真的很感激。 – 2010-08-04 13:53:19