繁体   English   中英

将(8 * 7 px)位图图像调整为800 x 700

[英]Resize (8 * 7 px) Bitmapimage to 800 x 700

我创建了大约100 png文件,这些文件的大小均为8*7 pixels ,它们包含微小的面孔。

我想在WPF Image显示其中一张脸,为此,我创建了一个Bitmapimage(使用Stretch.Fill选项),并将png放入其urisource中,然后将bitmapimage用作图像源。

可以想象,看起来有点奇怪,我要做的就是获取更大的图片,而不更改任何像素(例如,当您使用Windows图像查看器并放大它时,没有质量损失,像素也没有变化,这意味着您不会松开图像的形状和颜色)

我敢肯定有一种方法可以"zoom"我的8*7px图片,或者复制这些像素并再次绘制它们,但是更大。

非常抱歉我的英语不好,我仍然希望您能理解我并能提供帮助。

预先非常感谢您,实际上没有什么可说的了。

我想象得到的图像看起来很模糊。 原因不是质量的“损失”-而是推断出原始图像中根本没有的细节。 对于照片和类似图像,使用一些平滑插值通常是一个更好的主意,因此WPF就是这样做的。

我不确定WPF中是否有更好的方法(可能),但是您可以手动创建新的位图,而无需进行平滑插值,如下所示:

var src = new Bitmap("D:\\Untitled.png");
var dst = new Bitmap(800, 700);

using (var gr = Graphics.FromImage(dst))
{
  gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
  gr.DrawImage(src, new Rectangle(0, 0, 800, 700));
}

dst.Dump();

dst变量的大小调整后的位图将带有“最近邻居”插值-“像素化”外观。

编辑:

WPF本机方式是使用RenderOptions.BitmapScalingMode="NearestNeighbor" 如果要动态创建图像,则它当然对应于RenderOptions.SetBitmapScalingMode(bmp, BitmapScalingMode.NearestNeighbor)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM