【问题标题】:Creating high resolution image创建高分辨率图像
【发布时间】:2010-08-13 22:28:43
【问题描述】:

我有一张分辨率为 1600*1200 (96 dpi) 的图片 (png)。

我在图像上添加了一些文本,然后将其保存到一个文件中,以便使用 silverlight 的 deepzoom 和 pivotviewer 加载它。放大时文字模糊,我想知道如何使文字看起来更清晰(仅在放大一点​​时)。

这是我第一次使用图像/图形进行编程,所以任何信息都会很棒(即阅读链接、理解概念等)

法学博士

【问题讨论】:

    标签: c# silverlight pivotviewer


    【解决方案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 中。祝你好运!

    【讨论】:

    • 感谢科里的回复。图形编码知识接近于零,非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2013-08-25
    • 2017-08-23
    • 2017-11-26
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多