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# 图形图像 | 学步园相关推荐
- c#位图转换未矢量图_C#中如何生成矢量图
标签: 主要的功能就是使用C#画矢量图,然后导出到Word.Excel.Powerpoint中,并且能够再次被编辑.以下是解决过程: 首先应该确定在Office文档中可编辑图形使用的格式:学习了相关资 ...
- c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图
一.像素与分辨率 1. 像素 定义:图像中的最小颜色单位,是一个非常小的方形颜色块. 像素(Pixel)一般用px表示,每个像素只能有一个颜色. 将图像无限放大,会发现图像是由许多色彩相近的颜色方块组 ...
- Mac电脑把位图转换成矢量图的软件
Super Vectorizer for Mac是一款强大的位图转换工具,运行在Mac OS平台,可以轻松将数位图转换为矢量图. 矢量图以其放大后图像不会失真的优点,在社会各处的使用范围越来越广,但 ...
- 位图和矢量图格式有什么区别?如何一键把图片转换成矢量图?
我们在做图片设计的时候经常会说到位图和矢量图格式,有时候在进行图片编辑时的素材往往尺寸较小,在进行放大或缩小后会降低图片的清晰度,这个时候经常会有人建议说把位图格式的图片转换成矢量图格式的图片会提高设 ...
- linux矢量图像编辑,使用 inkscape 将位图转化为矢量图
向期刊投论,有时候编辑会来信要求将文章中的某些位图格式(bmp.png.jpg 等)的插图转化为矢量图格式.矢量图的好处,大家应当也都清楚,可以任意放大,图像依然保持清晰.在 Linux 下,我们可以 ...
- 用CorelDRAW软件把位图转成矢量图
用CorelDRAW软件把位图转成矢量图 这只是一个方法,只想让大家明白,但我不支持大家这样做,如果是大图这样做的话就很卡,看你电脑承受能力了.
- 【Vectorizer.AI】免费将 JPEG 和 PNG 位图转换为 SVG 矢量图
Vectorizer.AI 是一款非常新鲜,正在测试中的网站,由 AI 驱动.它能将 JPEG 和 PNG 位图转换为 SVG 矢量,可无限量放大,目前支持的最大图像像素大小为 2 万像素,最大图像文 ...
- 如何把位图转成矢量图
1.在illustrator中,创建新文件,把位图图片拷贝进来. 2.选中拷贝进来的位图图片,执行"对象->图像描摹->建立并扩展":然后执行"对象-> ...
- 一个小分享ai位图怎么变成矢量图
如果你的图轮廓比较清晰,可以用这个办法: 把图置入,点一下图, 在菜单条里选:对象-------实时描摹--------建立并扩展,就可以转成矢量图了! 如果不满意,可以在实时描摹的选项里调一下,具体 ...
- 立体栅格地图_三维栅格地图构建之二:视差图及点云图 | 学步园
在上一步骤--双目校正的基础上可以很方便的获取视差图.视差即空间中同一点在左右目图像上的水平位置差. 自己凭感觉(不知道对错的)总结了一下,主要分为两大类:基于兴趣点的,不基于兴趣点的. 基于兴趣点的 ...
最新文章
- Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径、相对路径
- java testng 优化_java+testNG测试框架搭建----jenkins自动化执行
- 在安装、重装MySQL时出现could not start the service mysql error:0的错误
- 用VS studio 2008做sql server 报表出现乱码
- filename: core/loader.php,使用第三方包后出现的这个错误,你们都遇到过吗?
- 如何在复杂的分布式系统中做测试
- 仿苹果涂鸦软件_ipad平板电脑有哪些绘画软件?
- jsp页面什么时候用 .do 和 .jsp
- NYOJ509-因子和阶乘
- 【STM32F407的DSP教程】第2章 Matlab R2018a的安装
- 计算机换色带技巧,平乐园电脑维修店教你爱普生针式打印机更换色带基本办法...
- java xml 小于等于_MyBatis中xml文件中的大于 大于等于 小于 小于等于 写法
- 富集分析(GO、KEGG、GSEA)
- SIP穿越NAT SIP穿越防火墙
- ORA-03113: end-of-file on communication channel 解决方法
- 6_linux软件的安装
- [转] 晚上一般什么时候睡觉?
- 经纬度和高德地图计算两点距离面积
- OkHttpClient 源码分析 1(基于3.9.0的源码)
- source insight下载安装教程