首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的图像缩小

C#中的图像缩小
EN

Stack Overflow用户
提问于 2018-04-25 18:30:57
回答 2查看 497关注 0票数 0

我正在将图像大小减少到8*8,以使用C#计算平均哈希值来查找相似的图像。我计划使用Lanczos算法来减小图像大小,因为它看起来效果很好(从互联网上读取,也使用python图像哈希算法)。你能告诉我在哪里可以找到用C#实现的Lanczos算法吗?还有比Lanczos更好的办法吗?请帮帮忙。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-04-25 21:45:54

对算法一无所知,但调整图像大小的方法相当简单:

代码语言:javascript
复制
    public static Bitmap ResizeImage(Image image, Int32 width, Int32 height)
    {
        Bitmap destImage = new Bitmap(width, height);
        using (Graphics graphics = Graphics.FromImage(destImage))
            graphics.DrawImage(image, new Rectangle(0, 0, width, height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
        return destImage;
    }

这样,您可以加载原始图像,调整其大小,并将调整后的图像保存到磁盘:

代码语言:javascript
复制
public void ResizeImageFromPath(String imagePath, Int32 width, Int32 height, String savePath)
{
    if (savePath == null)
        savePath = imagePath;
    Byte[] bytes = File.ReadAllBytes(imagePath);
    using (MemoryStream stream = new MemoryStream(bytes))
    using (Bitmap image = new Bitmap(stream))
    using (Bitmap resized = ResizeImage(image, newwidth, newheight))
        resized.Save(savePath, ImageFormat.Png);
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-25 19:44:46

代码语言:javascript
复制
   using (Bitmap bitmap = (Bitmap)Image.FromFile("file.jpg"))
    {
        using (Bitmap newBitmap = new Bitmap(bitmap))
        {
            newBitmap.SetResolution(8, 8);
            newBitmap.Save("file_64.jpg", ImageFormat.Jpeg);
        }
    }

您可以在Save-Function中更改ImageFormat以获得另一个压缩率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50019978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档