又有一段时间没有更新了,缺少学习的热情了。今天贴几个图片处理的小技巧,希望对大家有用:
(1)如何获取.gif图片中的各个帧?
(2)如何获取图片的缩略图?
(3)如何“截取”图片的指定区域?

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

public class ImageHelper
{
    /**//// <summary>
    /// 获取图片中的各帧
    /// </summary>
    /// <param name="pPath">图片路径</param>
    /// <param name="pSavePath">保存路径</param>
    public void GetFrames(string pPath, string pSavedPath)
    {
        Image gif = Image.FromFile(pPath);
        FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);

        //获取帧数(gif图片可能包含多帧,其它格式图片一般仅一帧)
        int count = gif.GetFrameCount(fd);

        //以Jpeg格式保存各帧
        for (int i = 0; i < count; i++)
        {
            gif.SelectActiveFrame(fd, i);
            gif.Save(pSavedPath + "\\frame_" + i + ".jpg", ImageFormat.Jpeg);
        }
    }

    /**//// <summary>
    /// 获取图片缩略图
    /// </summary>
    /// <param name="pPath">图片路径</param>
    /// <param name="pSavePath">保存路径</param>
    /// <param name="pWidth">缩略图宽度</param>
    /// <param name="pHeight">缩略图高度</param>
    /// <param name="pFormat">保存格式,通常可以是jpeg</param>
    public void GetSmaller(string pPath, string pSavedPath, int pWidth, int pHeight)
    {
        try
        {
            Image smallerImg;
            Image originalImg = Image.FromFile(pPath);
            Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
            smallerImg = originalImg.GetThumbnailImage(pWidth, pHeight, callback, IntPtr.Zero);
            smallerImg.Save(pSavedPath + "\\smaller.jpg", ImageFormat.Jpeg);
        }
        catch (Exception x)
        {
            //
        }
    }

    /**//// <summary>
    /// 获取图片指定部分
    /// </summary>
    /// <param name="pPath">图片路径</param>
    /// <param name="pSavePath">保存路径</param>
    /// <param name="pPartStartPointX">目标图片开始绘制处的坐标X值(通常为)</param>
    /// <param name="pPartStartPointY">目标图片开始绘制处的坐标Y值(通常为)</param>
    /// <param name="pPartWidth">目标图片的宽度</param>
    /// <param name="pPartHeight">目标图片的高度</param>
    /// <param name="pOrigStartPointX">原始图片开始截取处的坐标X值</param>
    /// <param name="pOrigStartPointY">原始图片开始截取处的坐标Y值</param>
    /// <param name="pFormat">保存格式,通常可以是jpeg</param>
    public void GetPart(string pPath, string pSavedPath, int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)
    {
        Image originalImg = Image.FromFile(pPath);

        Bitmap partImg = new Bitmap(pPartWidth, pPartHeight);   
        Graphics graphics = Graphics.FromImage(partImg);
        Rectangle destRect = new Rectangle(new Point(pPartStartPointX, pPartStartPointY), new Size(pPartWidth, pPartHeight));//目标位置
        Rectangle origRect = new Rectangle(new Point(pOrigStartPointX, pOrigStartPointY), new Size(pPartWidth, pPartHeight));//原图位置(默认从原图中截取的图片大小等于目标图片的大小)

        graphics.DrawImage(originalImg, destRect,origRect,GraphicsUnit.Pixel);
        partImg.Save(pSavedPath + "\\part.jpg", ImageFormat.Jpeg);
    }

    public bool ThumbnailCallback()
    {
        return false;
    }
}

转载于:https://www.cnblogs.com/RobotTech/archive/2007/10/13/923433.html

C#对图片的几种简单处理 [ZT]相关推荐

  1. 将PDF文件转换为JPG格式图片的3种简单方法

    如何在线将PDF文件转换成图片格式?如果您在使用PDF文件时只需要其中一页或几页的内容,将PDF转换为图片可以使您更方便地使用这些内容.下面介绍三种简单易用的PDF转图片的方法. 方法一:记灵在线工具 ...

  2. pdf转为图片的三种简单的方法

    现在越来越多的工作和学习都是通过电子文档来完成的,pdf是其中一种最常见的文档格式之一,它的排版固定.浏览直观.舒适,不容易出错,非常方便使用.但是小伙伴们在使用pdf文档的时候有没有遇到过这种情况, ...

  3. .NET基础示例系列之二十:对图片的几种简单处理

    又有一段时间没有更新了,缺少学习的热情了.今天贴几个图片处理的小技巧,希望对大家有用: (1)如何获取.gif图片中的各个帧? (2)如何获取图片的缩略图? (3)如何"截取"图片 ...

  4. SVG格式文件插入Word/WPS,三种简单快捷的方法,实现图片高清无损

    最近在修改论文的时候,发现自己电脑SVG格式文件插入后一直模糊,或者出现插入不成功的情况,研究了一会后,找到了几种简单高校高效的方法,和大家分享一下- Word2019可以直接插入SVG,图片高清无损 ...

  5. ​PDF文件怎么转换成JPG图片?分享两种简单的转换方法

    PDF文件怎么转换成JPG格式的图片呢?大家在使用PDF文件的过程中,肯定会遇到过一些内容非常多的文件,而我们需要使用到的地方可能只有几页的内容,大家不管是在使用过程中还是在传输文件的过程中,都会因为 ...

  6. 怎么给照片降噪?分享两种简单好用的图片降噪方法

    怎么给照片降噪呢?大家在使用数码摄影的时候,相机将光线作为接收信号接收并输出的过程中,会产生图片中粗糙的部分,这本是不该出现的外来像素,导致拍出来的照片或多或少会出现噪点,让图片看起来不美观.这时候我 ...

  7. 如何转换图片的格式?分享五种简单好用的转换方法

    图片的格式怎么进行转换呢?在数字时代,我们经常需要使用电子设备来处理和共享各种图片.然而,不同的设备和应用程序支持不同的图片格式,这可能会导致一些不便和问题.因此,我们需要将图片的格式进行转换,以便在 ...

  8. Webp格式图片怎么转JPG?教你几种简单好用的转换方法

    Wepb格式的图片怎么转换成JPG格式呢?WebP是一种新型的图像格式,但是它目前仍然不被所有的浏览器和设备支持.大多数设备和浏览器都支持JPG格式,因此将WebP格式的图片转换成JPG格式可以确保图 ...

  9. 两种简单的网页图片替换方法

    网站具体是由图片.文字.视频组成的,现在搭建网站,一般都是利用模板建站的方式去做,那么我们拿到模板以后,想要去对这个模板一些图片位置进行修改,应该怎么去做呢?那么基于wordpress的模板建站方式, ...

最新文章

  1. leetcode处女作
  2. 关于一些运算((与运算)、|(或运算)、^(异或运算)........)的本质理解【转】...
  3. postgres外部表
  4. oracle获取 表名,Oracle获取当前数据库的所有表名字段名和注释
  5. CentOS7搭建hadoop2.6.4+HBase1.1.6
  6. 摸透 Redis 主从复制、哨兵、Cluster 三种模式
  7. Imagelist 控件
  8. 一名IT经理是如何把项目带崩的。。。
  9. 360安全卫士清理C盘
  10. python微信语音转发方法_最全的微信语音转发方法,最简单的方式大家已经帮你选出来了...
  11. spss数据预处理步骤_数据预处理详解
  12. ”易书网“开发总结——技术篇
  13. 招商银行笔试题之鸡鸭分类问题
  14. 第一方数据,第二方数据,第三方数据:你了解多少?
  15. 什么时候做都不晚——十大大器晚成的人物
  16. 恭喜Minya Konka获得第一块银牌!
  17. 实际的网络爬虫系统通常是几种爬虫技术相结合实现的。
  18. 畅玩三子棋(可选择棋盘大小)
  19. 概率论与数理统计慕课答案(郑州轻工业大学)
  20. 超详细|一篇搞定操作系统——用户接口

热门文章

  1. AGG第二十二课 conv_contour函数auto_detect_orientation的字体应用
  2. 斯隆-凯特琳癌症中心使用RTLS系统,改善患者术后护理流程
  3. 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
  4. 解析CleanMyMac隐私保护内容与使用
  5. Android规范文档
  6. 系统自带的mysqldump 与 mydumper备份速度比较
  7. asp.net母板使用注意
  8. 里程碑:BCH网络出现首例Schnorr Multisig交易
  9. C++编写Config类读取配置文件
  10. N32-马哥Linux第一周学习