c#位图转换未矢量图_c# 图形图像 | 学步园
圖形圖像
一、圖形的種類。
1、矢量圖
矢量圖像,也稱為面向對象的圖像或繪圖圖像,在數學上定義為一系列由線連接的點。矢量文件中的圖形元素稱為對象。每個對象都是一個自成一體的實體,它具有顏色、形狀、輪廓、大小和屏幕位置等屬性。既然每個對象都是一個自成一體的實體,就可以在維持它原有清晰度和彎曲度的同時,多次移動和改變它的屬性,而不會影響圖例中的其它對象。這些特征使基于矢量的程序特別適用于圖例和三維建模,因為它們通常要求能創建和操作單個對象。基于矢量的繪圖同分辨率無關。這意味著它們可以按最高分辨率顯示到輸出設備上。
矢量圖與位圖最大的區別是,它不受分辨率的影響。因此在印刷時,可以任意放大或縮小圖形而不會影響出圖的清晰度
矢量圖:是根據幾何特性來繪制圖形,矢量可以是一個點或一條線,矢量圖只能靠軟件生成,文件戰用內在空間較小,因為這種類型的圖像文件包含獨立的分離圖像,可以自由無限制的重新組合。它的特點是放大后圖像不會失真,和分辨率無關,文件占用空間較小,適用于圖形設計、文字設計和一些標志設計、版式設計等。
2、 位圖
亦稱為點陣圖像或繪制圖像,是由稱作像素(圖片元素)的單個點組成的。這些點可以進行不同的排列和染色以構成圖樣。當放大位圖時,可以看見賴以構成整個圖像的無數單個方塊。擴大位圖尺寸的效果是增多單個像素,從而使線條和形狀顯得參差不齊。然而,如果從稍遠的位置觀看它,位圖圖像的顏色和形狀又顯得是連續的。在體檢時,工作人員會給你一個本子,在這個本子上有一些圖像,而圖像都是由一個個的點組成的,這和位圖圖像其實是差不多的。由于每一個像素都是單獨染色的,您可以通過以每次一個像素的頻率操作選擇區域而產生近似相片的逼真效果,諸如加深陰影和加重顏色。縮小位圖尺寸也會使原圖變形,因為此舉是通過減少像素來使整個圖像變小的。同樣,由于位圖圖像是以排列的像素集合體形式創建的,所以不能單獨操作(如移動)局部位圖。
二、? C#中對于圖形的支持。
在C#語言中所有有關于圖形圖像的類全部多被封裝在System.Drawing名詞空間下了,主要的類有Image、Bitmap、metafile源文件。
Object類
↓
MershalByRefObject
↓
Image(抽象類)
↓
Bitmap
Metafile
三、圖形的加載。
在C#語言中想要將指定的圖形加載到我們指定的位置上就要使用Image類,但是這個類是個抽象類,在我們以前學習抽象類時我講過,抽象類是不可以構造對象的,不過微軟為我們做了幾種專門用來讓抽象類構造對象的方式,這些方法全部都在Image的靜態方法中。
1、FromFile(string str);
//給于指定的圖片路徑。
2、FromFile(string str , bool useEmbeddedColorManagement);
//給予指定的圖片路徑,以及是否使用圖像文件中嵌入的顏色管理。
3、FromStream(Stream stream);
//使用流文件導入圖片,這個以后將會在我們學挽流以后才會使用到。
四、圖像的繪制以及Image的使用方式。
在我以前講課的時候曾經說過,在C#語言當中如果關系到繪制時,就一定于Graphics繪制類有關系,當然在使用Image進行繪制圖片時也于這個類有很大的關系,在這個類對象的方法中,有一個方法叫做DrawImage這個方法中。
1、DrawImage(Image mag,int x,int y);
//給予指定的Image對象,在窗體的X于Y位置上繪制。
2、DrawImage(Image mag,int x,int y,int Width,int Height);
//給予指定的Image對象,在窗體的X于Y位置上按照指定的大小進行繪制。
例:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Hty
{
class MyForm : Form
{
Image mge;
static void Main()
{
Application.Run(new
MyForm());
}
public MyForm()
{
this.Text = "圖形圖像";
mge = Image.FromFile("虎.jpg");
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics grfx = e.Graphics;
grfx.DrawImage(mge, 0, 0,this.Width,this.Height);
}
}
}
五、如何在圖像上繪制。
在上邊我們學會了應該如何在窗體上進行繪制圖片,現在我們來學習如何在圖片上進行繪制于更改。
我們在往窗體上進行繪制時,需要通過獲取當前窗體的所有信息,同樣的我們要是向往圖片上進行繪制,也要獲取圖片當前的信息,在Graphics類中有一個靜態方法就是專門用來獲取圖片信息提供給要繪制者使用的。
例、Graphics grfx = Graphics.FromImage(Image mag);
//我們只需要把要被繪制的圖片信息放入到這個方法的參數中,就可以直接獲取到要繪制的信息了。
六、保存圖片。
在上邊我們學到了如何在指定的圖片上進行繪制,但是當我們繪制完后發現,在剛剛繪制上去的東西沒有保存到圖片中,其實想要將繪制后的圖片進行保存需要使用Image類中的Save方法。
1、Save(String strFileName);
//將繪制完后的圖片保存到硬盤中的指定位置。
2、Save(String strFileName,ImageFormat imgfmt);
//將繪制完后的圖片保存到硬盤中的指定位置,并且確認要存儲的圖片格式。
ImageFormat是一個靜態類,它可以將我們的圖像文件格式轉換成指定的格式。例如將Bmp的文件轉換成jpg的文件。
七、? ImageFormat類的屬性。
類型
屬性
訪問方式
說明
ImageFormat
Bmp
讀
獲取圖片格式(Bmp)。
ImageFormat
Emp
讀
獲取圖片格式(Emp)。
ImageFormat
Exif
讀
獲取圖片格式(Exif)。
ImageFormat
Jpeg
讀
獲取圖片格式(Jpg)。
ImageFormat
Icon
讀
獲取圖片格式(Icon)。
ImageFormat
Gif
讀
獲取圖片格式(gif)。
ImageFormat
Png
讀
獲取圖片格式(png)。
ImageFormat
Tiff
讀
獲取圖片格式(tiff)。
ImageFormat
Wmf
讀
獲取圖片格式(wmf)。
例:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace Hty
{
class MyForm : Form
{
Image mge;
static void Main()
{
Application.Run(new
MyForm());
}
public MyForm()
{
this.Text = "圖形圖像";
mge = Image.FromFile("虎.jpg");
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics grfx = e.Graphics;
grfx.DrawImage(mge, 0, 0,this.Width,this.Height);
Graphics grfx2 = Graphics.FromImage(mge);
grfx2.DrawString("虎",
new Font("宋體",200),
Brushes.Black, 100, 100);
mge.Save("虎神.bmp",
ImageFormat.Bmp);
}
}
}
總結
以上是生活随笔為你收集整理的c#位图转换未矢量图_c# 图形图像 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 驾校一点通电脑版客户端 v7.1 最新P
- 下一篇: 局域网网络流量监控_LINUX常见性能监