类库探源——System.Drawing
一、System.Drawing 命名空间简述
System.Drawing 命名空间提供访问 GDI+ 的基本功能,更高级的功能在 System.Drawing.Drawing2D,System.Drawing.Imaging 和 System.Drawing.Text 命名空间
程序集: System.Drawing.dll
二、System.Drawing.Image 简述
Image 类:为源自 Bitmap 和 Metafile 的类提供功能的抽象基类
命名空间: System.Drawing
程序集: System.Drawing.dll
原型定义:
[SerializabaleAttribute]
[ComVisibleAttribute(true)]
[TypeConverterAttribute(typeof(ImageConverter))]
public abstract class Image : MarshalByRefObject, ISerializable, ICloneable, IDisposable
常用实例属性:
Height 获取当前图像实例的 高度(以像素为单位)
Width 获取当前图像实例的 宽度(以像素为单位)
HorizontalResolution 获取当前图像实例的水平分辨率(像素/英寸)
VerticalResolution 获取当前图像实例的垂直分辨率(像素/英寸)
PhysicalDimension 获取当前图像的宽度和高度。
RawFormat 获取当前图像格式
PixelFormat 获取当前Image的像素格式
代码:
using System;
using System.Drawing; class App
{
static void Main()
{
var img = Image.FromFile(@"图像格式.jpg"); // 图像格式.png 改扩展名而来
Console.WriteLine(img.Height);
Console.WriteLine(img.Width);
Console.WriteLine(img.HorizontalResolution);
Console.WriteLine(img.VerticalResolution);
Console.WriteLine(img.PhysicalDimension);
Console.WriteLine(img.PhysicalDimension.Width);
Console.WriteLine(img.PhysicalDimension.Height);
Console.WriteLine(img.RawFormat);
Console.WriteLine(img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png)); // 是否是 Png 格式
Console.WriteLine(img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg)); // 是否是 jpg 格式 ,不是扩展名氏 jpg 不等于图像格式就是 Jpeg
Console.WriteLine(img.PixelFormat);
}
}
效果

附本小节代码下载
常用静态方法:
public static Image FromFile(string filename) 从指定文件创建 Image
public static Image FromStream(Stream stream) 从指定数据流创建 Image
常用实例方法:
public Image GetThumbnailImage(int thumbWidth,int thumbHeight,System.Drawing.Image.GetThumbnailImageAbort callback,IntPtr callbackData) 返回此 Image 的缩略图
RotateFlip 旋转
public void Save(string filename) 将该 Image 保存到指定的文件或流
代码:
using System;
using System.Drawing; class App
{
static void Main()
{
using(var img = Image.FromFile(@"图像格式.jpg"))
{
// 生成缩略图
var thumbImg = img.GetThumbnailImage(,,()=>{return false;},IntPtr.Zero);
thumbImg.Save(@"图像格式_thumb.jpg"); // 图像翻转
var newImg = img.Clone() as Image;
newImg.RotateFlip(RotateFlipType.Rotate180FlipX);
newImg.Save(@"图像格式_X轴翻转180度.jpg");
}
}
}
附本小节代码下载
类库探源——System.Drawing的更多相关文章
- 类库探源——System.Drawing.Bitmap
一.System.Drawing.Bitmap Bitmap 类: 封装GDI+ 位图,此位图由图形图像及其属性的像素数据组成.Bitmap 是用于处理由像素定义的图像的对象 命名空间: System ...
- 类库探源——System.Delegate
一.MSDN 描述 Delegate 类:表示委托,委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法.(是不是感觉很像C语言中的函数指针 :) ) 命名空间: System 程序集: ...
- 类库探源——System.Configuration 配置信息处理
按照MSDN描述 System.Configuration 命名空间 包含处理配置信息的类型 本篇文章主要两方面的内容 1. 如何使用ConfigurationManager 读取AppSetting ...
- 类库探源——System.Math 和 Random
一.System.Math Math类:为三角函数.对数函数和其他通用数学函数提供常数和静态方法 命名空间: System 程序集 : mscorlib.dll 继承关系: 常用属性: Math. ...
- 类库探源——System.ValueType
一.MSDN描述 ValueType 类:提供值类型的基类 命名空间: System 程序集: mscorlib.dll 继承关系: 值类型包括:字符.整数.浮点.布尔.枚举.结构(其实字符.整数 ...
- 类库探源——System.Environment
Environment 类: 提供有关当前环境和平台的信息以及操作它们的方法.此类不能被继承. 命名空间: System 程序集: mscorlib.dll 继承关系: 常用属性(字段)和方法: ...
- 类库探源——System.Exception
一.MSDN描述 Exception 类: 表示在应用程序执行期间发生的错误 命名空间 : System 程序集: mscorlib.dll 继承关系: 常用属性(含字段)和方法: 1. 属性Me ...
- 类库探源——System.String
一.MSDN描述 String 类: 表示文本,即一系列的 Unicode 字符 命名空间 : System 程序集 : mscorlib.dll 继承关系: 备注: 1. 字符串是 Unicode ...
- 类库探源——System.Type
一.MSDN 描述 Type 类:表示类型声明:类类型.接口类型.数组类型.值类型.枚举类型.类型参数.泛型类型定义.以及开放或封闭构造的泛型类型. 命名空间: System 程序集:mscorlib ...
随机推荐
- linux | mac 设置远程主机别名
管理几台不同的服务器,要上线,发布,测试, 每次输入 ip 感觉好傻. 在 ~/.ssh/ 目录下如果有config 文件,修改一下就好,如果没有,创建一个. # vim ~/.ssh/config ...
- Hacking Secret Ciphers with Python翻译序言
马上就要下班,一直想做点什么,学点什么,但是似乎从未着手. 是的,我想学习Hacking,或许很多人都想学,但是诸多的大牛说,这个得有基础,万丈高楼平地起,我做过那么一点点的密码分析,加上某些地方有小 ...
- Java笔记(十七)……异常
异常概述 异常是什么 是对问题的描述,将问题进行对象的封装 异常体系 Throwable |---Error |---Exception |---RuntimeException 异常体系的特点 异常 ...
- 【UER #1】跳蚤OS(Trie)
跳蚤OS 是跳蚤国自主研发的功能强大的操作系统. 跳蚤OS的文件系统与普通的文件系统类似,是个文件夹套文件夹的结构.文件系统根目录称为“//”.我们可以用文件路径来表明文件所在的位置,比如“/flea ...
- 使用yum和iso镜像离线升级RedHat系统
创建一个用于挂载iso镜像的目录.由于这个目录不能在挂载时自动创建,所以需要以root身份先创建一个目录.命令: mkdir mount_dir 以root身份把iso镜像挂载到上一步创建的目录上.命 ...
- 《Introduction to Algorithm》-chaper30-多项式与快速傅里叶变换
两个n次多项式的相加最直接的方法所需要的时间是O(n),而实现两个n次多项式的乘法的直接方法则需要O(n^2),本章讨论的快速傅里叶变换(FFT),将会将这一过程的时间复杂度降至O(nlogn).同时 ...
- Dynamices CRM Permission Issue (Security role UI to privilege mapping)'s solution
select * from privilege where privilegeid = 'a4736385-9763-4a64-a44b-cd5933edc631' Security role UI ...
- 让SecureCRT vi中显示多色彩
方法1: 1.打开SecureCRT___选项__会话选项___仿真 右边的中端选择linux,把ANSI 颜色和使用颜色方案打上钩. 2.选择外观,右边的使用颜色和闪烁都打上钩. 3.重新连接使所该 ...
- 第四届CCF软件能力认证(CSP2015) 第五题(最小花费)题解
[问题描述] C国共有$n$个城市.有$n-1$条双向道路,每条道路连接两个城市,任意两个城市之间能互相到达.小R来到C国旅行,他共规划了$m$条旅行的路线, 第$i$条旅行路线的起点是$s_i$,终 ...
- psd via fft and pwelch
%fft and pwelch方法求取功率谱load x.mat Fs = 1; t = (0:1/Fs:1-1/Fs).'; Nx = length(x); % Window data w = ha ...