11.C# 图像处理

 

11.C# 图像处理
  1 #region 程序集 System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
  2 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Drawing.dll
  3 #endregion
  4 
  5 using System.ComponentModel;
  6 using System.Drawing.Design;
  7 using System.Drawing.Imaging;
  8 using System.IO;
  9 using System.Runtime.InteropServices;
 10 using System.Runtime.Serialization;
 11 
 12 namespace System.Drawing
 13 {
 14     //
 15     // 摘要:
 16     //     为源自 System.Drawing.Bitmap 和 System.Drawing.Imaging.Metafile 的类提供功能的抽象基类。
 17     [ComVisible(true)]
 18     [Editor("System.Drawing.Design.ImageEditor, System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
 19     [ImmutableObject(true)]
 20     [TypeConverter(typeof(ImageConverter))]
 21     public abstract class Image : MarshalByRefObject, ISerializable, ICloneable, IDisposable
 22     {
 23         //
 24         ~Image();
 25 
 26         //
 27         // 摘要:
 28         //     获取该 System.Drawing.Image 的像素数据的特性标志。
 29         //
 30         // 返回结果:
 31         //     表示该 System.Drawing.Image 按位组合的 System.Drawing.Imaging.ImageFlags 的整数。
 32         [Browsable(false)]
 33         public int Flags { get; }
 34         //
 35         // 摘要:
 36         //     获取 GUID 的数组,这些 GUID 表示此 System.Drawing.Image 中帧的维数。
 37         //
 38         // 返回结果:
 39         //     GUID 的数组,这些 GUID 指定 System.Drawing.Image 中从最重要到最不重要的帧的维数。
 40         [Browsable(false)]
 41         public Guid[] FrameDimensionsList { get; }
 42         //
 43         // 摘要:
 44         //     获取此 System.Drawing.Image 的高度(以像素为单位)。
 45         //
 46         // 返回结果:
 47         //     此 System.Drawing.Image 的高度(以像素为单位)。
 48         [Browsable(false)]
 49         [DefaultValue(false)]
 50         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 51         public int Height { get; }
 52         //
 53         // 摘要:
 54         //     获取此 System.Drawing.Image 的水平分辨率(以“像素/英寸”为单位)。
 55         //
 56         // 返回结果:
 57         //     此 System.Drawing.Image 的水平分辨率(以“像素/英寸”为单位)。
 58         public float HorizontalResolution { get; }
 59         //
 60         // 摘要:
 61         //     获取或设置用于此 System.Drawing.Image 的调色板。
 62         //
 63         // 返回结果:
 64         //     System.Drawing.Imaging.ColorPalette,表示用于此 System.Drawing.Image 的调色板。
 65         [Browsable(false)]
 66         public ColorPalette Palette { get; set; }
 67         //
 68         // 摘要:
 69         //     获取此图像的宽度和高度。
 70         //
 71         // 返回结果:
 72         //     System.Drawing.SizeF 结构,表示此 System.Drawing.Image 的宽度和高度。
 73         public SizeF PhysicalDimension { get; }
 74         //
 75         // 摘要:
 76         //     获取此 System.Drawing.Image 的像素格式。
 77         //
 78         // 返回结果:
 79         //     System.Drawing.Imaging.PixelFormat,表示此 System.Drawing.Image 的像素格式。
 80         public PixelFormat PixelFormat { get; }
 81         //
 82         // 摘要:
 83         //     获取存储于该 System.Drawing.Image 中的属性项的 ID。
 84         //
 85         // 返回结果:
 86         //     由属性 ID 组成的一个数组,此图像中存储的所有属性项各有一个 ID。
 87         [Browsable(false)]
 88         public int[] PropertyIdList { get; }
 89         //
 90         // 摘要:
 91         //     获取存储于该 System.Drawing.Image 中的所有属性项(元数据片)。
 92         //
 93         // 返回结果:
 94         //     由 System.Drawing.Imaging.PropertyItem 对象组成的一个数组,这些对象分别对应于此图像中存储的每个属性项。
 95         [Browsable(false)]
 96         public PropertyItem[] PropertyItems { get; }
 97         //
 98         // 摘要:
 99         //     获取此 System.Drawing.Image 的文件格式。
100         //
101         // 返回结果:
102         //     System.Drawing.Imaging.ImageFormat,表示此 System.Drawing.Image 的文件格式。
103         public ImageFormat RawFormat { get; }
104         //
105         // 摘要:
106         //     获取此图像的以像素为单位的宽度和高度。
107         //
108         // 返回结果:
109         //     System.Drawing.Size 结构,表示此图像的宽度和高度(以像素为单位)。
110         public Size Size { get; }
111         //
112         // 摘要:
113         //     获取或设置提供有关图像附加数据的对象。
114         //
115         // 返回结果:
116         //     提供有关图像附加数据的 System.Object。
117         [Bindable(true)]
118         [DefaultValue(null)]
119         [Localizable(false)]
120         [TypeConverter(typeof(StringConverter))]
121         public object Tag { get; set; }
122         //
123         // 摘要:
124         //     获取此 System.Drawing.Image 的垂直分辨率(以“像素/英寸”为单位)。
125         //
126         // 返回结果:
127         //     此 System.Drawing.Image 的垂直分辨率(以“像素/英寸”为单位)。
128         public float VerticalResolution { get; }
129         //
130         // 摘要:
131         //     获取此 System.Drawing.Image 的宽度(以像素为单位)。
132         //
133         // 返回结果:
134         //     此 System.Drawing.Image 的宽度(以像素为单位)。
135         [Browsable(false)]
136         [DefaultValue(false)]
137         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
138         public int Width { get; }
139 
140         //
141         // 摘要:
142         //     从指定的文件创建 System.Drawing.Image。
143         //
144         // 参数:
145         //   filename:
146         //     字符串,包含要从中创建 System.Drawing.Image 的文件的名称。
147         //
148         // 返回结果:
149         //     此方法创建的 System.Drawing.Image。
150         //
151         // 异常:
152         //   T:System.OutOfMemoryException:
153         //     该文件没有有效的图像格式。 - 或 - GDI+ 不支持文件的像素格式。
154         //
155         //   T:System.IO.FileNotFoundException:
156         //     指定的文件不存在。
157         //
158         //   T:System.ArgumentException:
159         //     filename 为 System.Uri。
160         public static Image FromFile(string filename);
161         //
162         // 摘要:
163         //     使用该文件中的嵌入颜色管理信息,从指定的文件创建 System.Drawing.Image。
164         //
165         // 参数:
166         //   filename:
167         //     字符串,包含要从中创建 System.Drawing.Image 的文件的名称。
168         //
169         //   useEmbeddedColorManagement:
170         //     若要使用图像文件中嵌入的颜色管理信息,则设置为 true;否则设置为 false。
171         //
172         // 返回结果:
173         //     此方法创建的 System.Drawing.Image。
174         //
175         // 异常:
176         //   T:System.OutOfMemoryException:
177         //     该文件没有有效的图像格式。 - 或 - GDI+ 不支持文件的像素格式。
178         //
179         //   T:System.IO.FileNotFoundException:
180         //     指定的文件不存在。
181         //
182         //   T:System.ArgumentException:
183         //     filename 为 System.Uri。
184         public static Image FromFile(string filename, bool useEmbeddedColorManagement);
185         //
186         // 摘要:
187         //     从 GDI 位图的句柄创建 System.Drawing.Bitmap。
188         //
189         // 参数:
190         //   hbitmap:
191         //     要从其创建 System.Drawing.Bitmap 的 GDI 位图句柄。
192         //
193         // 返回结果:
194         //     此方法创建的 System.Drawing.Bitmap。
195         public static Bitmap FromHbitmap(IntPtr hbitmap);
196         //
197         // 摘要:
198         //     从 GDI 位图的句柄和 GDI 调色板的句柄创建 System.Drawing.Bitmap。
199         //
200         // 参数:
201         //   hbitmap:
202         //     要从其创建 System.Drawing.Bitmap 的 GDI 位图句柄。
203         //
204         //   hpalette:
205         //     如果在 hBitmap 参数中指定的位图不是与设备无关的位图 (DIB),则为用于定义位图颜色的 GDI 调色板的句柄。
206         //
207         // 返回结果:
208         //     此方法创建的 System.Drawing.Bitmap。
209         public static Bitmap FromHbitmap(IntPtr hbitmap, IntPtr hpalette);
210         //
211         // 摘要:
212         //     从指定的数据流创建 System.Drawing.Image。
213         //
214         // 参数:
215         //   stream:
216         //     一个 System.IO.Stream,包含此 System.Drawing.Image 的数据。
217         //
218         // 返回结果:
219         //     此方法创建的 System.Drawing.Image。
220         //
221         // 异常:
222         //   T:System.ArgumentException:
223         //     该流没有有效的图像格式 - 或 - stream 为 null。
224         public static Image FromStream(Stream stream);
225         //
226         // 摘要:
227         //     可以选择使用指定的数据流中嵌入的颜色管理信息,从该数据流创建 System.Drawing.Image。
228         //
229         // 参数:
230         //   stream:
231         //     一个 System.IO.Stream,包含此 System.Drawing.Image 的数据。
232         //
233         //   useEmbeddedColorManagement:
234         //     若要使用该数据流中嵌入的颜色管理信息,则设置为 true;否则设置为 false。
235         //
236         // 返回结果:
237         //     此方法创建的 System.Drawing.Image。
238         //
239         // 异常:
240         //   T:System.ArgumentException:
241         //     该流没有有效的图像格式 - 或 - stream 为 null。
242         public static Image FromStream(Stream stream, bool useEmbeddedColorManagement);
243         //
244         // 摘要:
245         //     可以选择使用嵌入的颜色管理信息并验证图像数据来从指定的数据流创建 System.Drawing.Image。
246         //
247         // 参数:
248         //   stream:
249         //     一个 System.IO.Stream,包含此 System.Drawing.Image 的数据。
250         //
251         //   useEmbeddedColorManagement:
252         //     若要使用该数据流中嵌入的颜色管理信息,则设置为 true;否则设置为 false。
253         //
254         //   validateImageData:
255         //     若要验证图像数据,则为 true;否则为 false。
256         //
257         // 返回结果:
258         //     此方法创建的 System.Drawing.Image。
259         //
260         // 异常:
261         //   T:System.ArgumentException:
262         //     该流没有有效的图像格式。
263         public static Image FromStream(Stream stream, bool useEmbeddedColorManagement, bool validateImageData);
264         //
265         // 摘要:
266         //     返回指定像素格式的颜色深度(每个像素的位数)。
267         //
268         // 参数:
269         //   pixfmt:
270         //     System.Drawing.Imaging.PixelFormat 的成员,指定要查找其大小的格式。
271         //
272         // 返回结果:
273         //     指定的像素格式的颜色深度。
274         public static int GetPixelFormatSize(PixelFormat pixfmt);
275         //
276         // 摘要:
277         //     返回一个值,该值指示此 System.Drawing.Image 的像素格式是否包含 alpha 信息。
278         //
279         // 参数:
280         //   pixfmt:
281         //     要测试的 System.Drawing.Imaging.PixelFormat。
282         //
283         // 返回结果:
284         //     如果 pixfmt 包含 alpha 信息,则为 true;否则为 false。
285         public static bool IsAlphaPixelFormat(PixelFormat pixfmt);
286         //
287         // 摘要:
288         //     返回一个值,该值指示该像素格式是否为每个像素 32 位。
289         //
290         // 参数:
291         //   pixfmt:
292         //     要测试的 System.Drawing.Imaging.PixelFormat。
293         //
294         // 返回结果:
295         //     如果 pixfmt 规范,则为 true;否则为 false。
296         public static bool IsCanonicalPixelFormat(PixelFormat pixfmt);
297         //
298         // 摘要:
299         //     返回一个值,该值指示该像素格式是否为每个像素 64 位。
300         //
301         // 参数:
302         //   pixfmt:
303         //     要测试的 System.Drawing.Imaging.PixelFormat 枚举。
304         //
305         // 返回结果:
306         //     如果 pixfmt 是扩展的,则为 true;否则为 false。
307         public static bool IsExtendedPixelFormat(PixelFormat pixfmt);
308         //
309         // 摘要:
310         //     创建此 System.Drawing.Image 的一个精确副本。
311         //
312         // 返回结果:
313         //     该方法创建的并强制转换为对象的 System.Drawing.Image。
314         public object Clone();
315         //
316         // 摘要:
317         //     释放由此 System.Drawing.Image 占用的所有资源。
318         public void Dispose();
319         //
320         // 摘要:
321         //     以指定的单位获取图像的界限。
322         //
323         // 参数:
324         //   pageUnit:
325         //     System.Drawing.GraphicsUnit 值之一,指示边框的测量单位。
326         //
327         // 返回结果:
328         //     System.Drawing.RectangleF,以指定的单位表示图像的界限。
329         public RectangleF GetBounds(ref GraphicsUnit pageUnit);
330         //
331         // 摘要:
332         //     返回有关指定的图像编码器所支持的参数的信息。
333         //
334         // 参数:
335         //   encoder:
336         //     用于指定图像编码器的 GUID。
337         //
338         // 返回结果:
339         //     一个 System.Drawing.Imaging.EncoderParameters,包含 System.Drawing.Imaging.EncoderParameter
340         //     对象的一个数组。 每个 System.Drawing.Imaging.EncoderParameter 都包含有关指定的图像编码器所支持的某个参数的信息。
341         public EncoderParameters GetEncoderParameterList(Guid encoder);
342         //
343         // 摘要:
344         //     返回指定维度的帧数。
345         //
346         // 参数:
347         //   dimension:
348         //     System.Drawing.Imaging.FrameDimension,它指定维度类型的标识。
349         //
350         // 返回结果:
351         //     指定维度中的帧数。
352         public int GetFrameCount(FrameDimension dimension);
353         //
354         // 摘要:
355         //     从该 System.Drawing.Image 获取指定的属性项。
356         //
357         // 参数:
358         //   propid:
359         //     要获取的属性项的 ID。
360         //
361         // 返回结果:
362         //     此方法获取的 System.Drawing.Imaging.PropertyItem。
363         //
364         // 异常:
365         //   T:System.ArgumentException:
366         //     该图像的图像格式不支持属性项。
367         public PropertyItem GetPropertyItem(int propid);
368         //
369         // 摘要:
370         //     返回此 System.Drawing.Image 的缩略图。
371         //
372         // 参数:
373         //   thumbWidth:
374         //     请求的缩略图的宽度(以像素为单位)。
375         //
376         //   thumbHeight:
377         //     请求的缩略图的高度(以像素为单位)。
378         //
379         //   callback:
380         //     一个 System.Drawing.Image.GetThumbnailImageAbort 委托。 “注意” 必须创建一个委托并将对此委托的引用作为 callback
381         //     参数传递,但不使用此委托。
382         //
383         //   callbackData:
384         //     必须为 System.IntPtr.Zero。
385         //
386         // 返回结果:
387         //     表示缩略图的 System.Drawing.Image。
388         public Image GetThumbnailImage(int thumbWidth, int thumbHeight, GetThumbnailImageAbort callback, IntPtr callbackData);
389         //
390         // 摘要:
391         //     从该 System.Drawing.Image 移除指定的属性项。
392         //
393         // 参数:
394         //   propid:
395         //     要移除的属性项的 ID。
396         //
397         // 异常:
398         //   T:System.ArgumentException:
399         //     该图像不包含请求的属性项。 - 或 - 该图像的图像格式不支持属性项。
400         public void RemovePropertyItem(int propid);
401         //
402         // 摘要:
403         //     旋转、翻转或者同时旋转和翻转 System.Drawing.Image。
404         //
405         // 参数:
406         //   rotateFlipType:
407         //     System.Drawing.RotateFlipType 成员,指定要应用于该图像的旋转和翻转的类型。
408         public void RotateFlip(RotateFlipType rotateFlipType);
409         //
410         // 摘要:
411         //     将该 System.Drawing.Image 保存到指定的文件或流。
412         //
413         // 参数:
414         //   filename:
415         //     字符串,包含要将此 System.Drawing.Image 保存到的文件的名称。
416         //
417         // 异常:
418         //   T:System.ArgumentNullException:
419         //     filename 为 null.
420         //
421         //   T:System.Runtime.InteropServices.ExternalException:
422         //     该图像以错误的图像格式保存。 - 或 - 该图像被保存到创建该图像的文件。
423         public void Save(string filename);
424         //
425         // 摘要:
426         //     将此图像以指定的格式保存到指定的流中。
427         //
428         // 参数:
429         //   stream:
430         //     将在其中保存图像的 System.IO.Stream。
431         //
432         //   format:
433         //     System.Drawing.Imaging.ImageFormat,指定保存的图像的格式。
434         //
435         // 异常:
436         //   T:System.ArgumentNullException:
437         //     stream 或 format 为 null。
438         //
439         //   T:System.Runtime.InteropServices.ExternalException:
440         //     该图像以错误的图像格式保存
441         public void Save(Stream stream, ImageFormat format);
442         //
443         // 摘要:
444         //     将此 System.Drawing.Image 以指定格式保存到指定文件。
445         //
446         // 参数:
447         //   filename:
448         //     字符串,包含要将此 System.Drawing.Image 保存到的文件的名称。
449         //
450         //   format:
451         //     此 System.Drawing.Image 的 System.Drawing.Imaging.ImageFormat。
452         //
453         // 异常:
454         //   T:System.ArgumentNullException:
455         //     filename 或 format 为 null.
456         //
457         //   T:System.Runtime.InteropServices.ExternalException:
458         //     该图像以错误的图像格式保存。 - 或 - 该图像被保存到创建该图像的文件。
459         public void Save(string filename, ImageFormat format);
460         //
461         // 摘要:
462         //     使用指定的编码器和图像编码器参数,将该图像保存到指定的流。
463         //
464         // 参数:
465         //   stream:
466         //     将在其中保存图像的 System.IO.Stream。
467         //
468         //   encoder:
469         //     此 System.Drawing.Image 的 System.Drawing.Imaging.ImageCodecInfo。
470         //
471         //   encoderParams:
472         //     一个 System.Drawing.Imaging.EncoderParameters,它指定图像编码器使用的参数。
473         //
474         // 异常:
475         //   T:System.ArgumentNullException:
476         //     stream 为 null。
477         //
478         //   T:System.Runtime.InteropServices.ExternalException:
479         //     该图像以错误的图像格式保存。
480         public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams);
481         //
482         // 摘要:
483         //     使用指定的编码器和图像编码器参数,将该 System.Drawing.Image 保存到指定的文件。
484         //
485         // 参数:
486         //   filename:
487         //     字符串,包含要将此 System.Drawing.Image 保存到的文件的名称。
488         //
489         //   encoder:
490         //     此 System.Drawing.Image 的 System.Drawing.Imaging.ImageCodecInfo。
491         //
492         //   encoderParams:
493         //     用于该 System.Drawing.Image 的 System.Drawing.Imaging.EncoderParameters。
494         //
495         // 异常:
496         //   T:System.ArgumentNullException:
497         //     filename 或 encoder 为 null.
498         //
499         //   T:System.Runtime.InteropServices.ExternalException:
500         //     该图像以错误的图像格式保存。 - 或 - 该图像被保存到创建该图像的文件。
501         public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams);
502         //
503         // 摘要:
504         //     在上一 Overload:System.Drawing.Image.Save 方法调用所指定的文件或流内添加一帧。 使用此方法将多帧图像中的选定帧保存到另一个多帧图像。
505         //
506         // 参数:
507         //   encoderParams:
508         //     一个 System.Drawing.Imaging.EncoderParameters,保存由保存-添加操作使用的图像编码器所需的参数。
509         public void SaveAdd(EncoderParameters encoderParams);
510         //
511         // 摘要:
512         //     在上一 Overload:System.Drawing.Image.Save 方法调用所指定的文件或流内添加一帧。
513         //
514         // 参数:
515         //   image:
516         //     包含要添加的帧的 System.Drawing.Image。
517         //
518         //   encoderParams:
519         //     一个 System.Drawing.Imaging.EncoderParameters,保存由保存-添加操作使用的图像编码器所需的参数。
520         //
521         // 异常:
522         //   T:System.ArgumentNullException:
523         //     image 为 null。
524         public void SaveAdd(Image image, EncoderParameters encoderParams);
525         //
526         // 摘要:
527         //     选择由维度和索引指定的帧。
528         //
529         // 参数:
530         //   dimension:
531         //     System.Drawing.Imaging.FrameDimension,它指定维度类型的标识。
532         //
533         //   frameIndex:
534         //     活动帧的索引。
535         //
536         // 返回结果:
537         //     始终返回 0。
538         public int SelectActiveFrame(FrameDimension dimension, int frameIndex);
539         //
540         // 摘要:
541         //     在此 System.Drawing.Image 中存储一个属性项(元数据片)。
542         //
543         // 参数:
544         //   propitem:
545         //     要存储的 System.Drawing.Imaging.PropertyItem。
546         //
547         // 异常:
548         //   T:System.ArgumentException:
549         //     该图像的图像格式不支持属性项。
550         public void SetPropertyItem(PropertyItem propitem);
551         //
552         // 摘要:
553         //     释放由 System.Drawing.Image 占用的非托管资源,还可以另外再释放托管资源。
554         //
555         // 参数:
556         //   disposing:
557         //     true 表示释放托管资源和非托管资源;false 表示仅释放非托管资源。
558         protected virtual void Dispose(bool disposing);
559 
560         //
561         // 摘要:
562         //     提供一个回调方法,用于确定 System.Drawing.Image.GetThumbnailImage(System.Int32,System.Int32,System.Drawing.Image.GetThumbnailImageAbort,System.IntPtr)
563         //     方法应在何时提前取消执行。
564         //
565         // 返回结果:
566         //     如果此方法确定 System.Drawing.Image.GetThumbnailImage(System.Int32,System.Int32,System.Drawing.Image.GetThumbnailImageAbort,System.IntPtr)
567         //     方法应提前停止执行,则它返回 true;否则返回 false。
568         public delegate bool GetThumbnailImageAbort();
569     }
570 }
View Code

 

11.C# 图像处理

上一篇:WPF之再谈MVVM


下一篇:史上最详细nodejs版本管理器nvm的安装与使用(附注意事项和优化方案)