当前位置: 首页 > news >正文

织梦网站添加视频教程/营销网站建设选择

织梦网站添加视频教程,营销网站建设选择,wordpress要评论了才能看到内容,网络公司网站建设报价10. Graphics的几个属性。 今天我来讲讲Graphics在DrawImage里的几个的属性。 Graphics是GDI里面的大拿,可以用来画线,画矩形,甚至可以用来画各种各样的材质。通过不同的Pen,Brush来实现。具体的使用方法是所有想用GDI的同学的基础&#xff0…

10. Graphics的几个属性。

今天我来讲讲Graphics在DrawImage里的几个的属性。

Graphics是GDI+里面的大拿,可以用来画线,画矩形,甚至可以用来画各种各样的材质。通过不同的Pen,Brush来实现。具体的使用方法是所有想用GDI+的同学的基础,我就不详细讲了,具体可以参考MSDN:http://msdn.microsoft.com/en-us/library/haxsc50a(VS.80).aspx。我主要来讲2个大家不太注意的属性。

a.Graphics.CompositingMode

这是一个枚举属性,可以取的值有2种,一种是SourceOver, 另外一种是SourceCopy。这定义了Graphics如何将当前颜色和背景合成。如果是SourceCopy,那么颜色不和当前背景合成。如果是SourceOver,那么背景颜色会和当前的颜色混合,算法如下:

显示颜色 = 源颜色 × alpha / 255 + 背景颜色 × (255 - alpha) / 255

新颜色的透明分量是255,也就是不透明。我们来看看下面的代码:

        private int CompositeColor(int color, int alpha, int backgroudColor)
        {
            
//显示颜色 = 源颜色 × alpha / 255 + 背景颜色 × (255 - alpha) / 255
            return color * alpha / 255 + backgroudColor * (255 - alpha) / 255;
        }
        
private void Draw(object sender, EventArgs e)
        {
            
this.BackColor = Color.FromArgb(255255255);
            Graphics g 
= this.CreateGraphics();
            g.CompositingMode 
= System.Drawing.Drawing2D.CompositingMode.SourceOver;
            g.FillRectangle(
new SolidBrush(Color.FromArgb(12725500)), new Rectangle(00200200));

            g.CompositingMode 
= System.Drawing.Drawing2D.CompositingMode.SourceCopy;
            g.FillRectangle(
new SolidBrush(Color.FromArgb(12725500)), new Rectangle(2000200200));

            
            g.CompositingMode 
= System.Drawing.Drawing2D.CompositingMode.SourceCopy;
            g.FillRectangle(
new SolidBrush(Color.FromArgb(
                
255,
                CompositeColor(
255127255),
                CompositeColor(
0127255),
                CompositeColor(
0127255))
                ), 
new Rectangle(0200200200));
          
            g.Dispose();           
        }

 

第1个色块和第2个色块分别是混合和不混合的,如果我们用不混合的方式希望得到混合的效果,那么应该用第三个色块的写法。从下面的图像中我们可以很清楚地看到结果。

b.Graphics.CompositingQuality

合成质量,一共有5种

 成员名称说明
AssumeLinear假定线性值。 
Default默认质量。 
GammaCorrected使用灰度校正。 
HighQuality高质量、低速度复合。 
HighSpeed高速度、低质量。 
Invalid无效质量。 
这部分东西稍有点学问,MSDN里面没怎么讲清楚,有些实践派的同学用了其他的几个相关的属性来解释GDI+中的图像质量,例如http://www.cnblogs.com/adow/archive/2007/10/05/914573.html,不过不得精髓。我来解释一下图像合成的一些理论基础。这里还需要和另外一个属性InterpolationMode加以区分。这个属性的具体使用我会在下一节讲到,而合成质量与插值不是一回事。

根据我们上一节的算法,图像的合成是浮点运算,计算量非常大。此外,由于图像存储最后是需要被量化的,所以在量化的过程中会不可避免地出现锯齿的情况,为了平滑锯齿,又需要大量的计算。还有一个问题,如果我们有很多层不同的透明图像,需要进行合成,那么每一层都需要进行合成运算。其实这种合成运算式可以被优化的。CompositingQuality这个属性就是GDI+用来解决这些问题的。MSDN里面只是简单地说质量越高速度越慢,具体的算法不得而知。

HighQuality使用平滑技术去除在合成中出现的锯齿,并合成当前的Gamma灰度信息,这种计算是最慢的,并且出来的颜色与非GammaCorrected是不一样的。

GammaCorrected 合成当前Gamma灰度信息,但是不进行计算优化。

HighSpeed优化计算速度,出来的质量稍微有点差,如果不是对质量要求很高时看不出来的。

AssumeLinear的质量比Default稍好,速度稍慢,这种算法是假定合成中插值的像素变化是线性的。

Default就是最基本的计算方法。

Invalid未知,我也不知道,要是有知道的朋友可以告诉我。

其中HighQuality/GammaCorrected效果一样,其余四种一样。可以参考下图。

 

转载于:https://www.cnblogs.com/hotcan/archive/2008/11/26/1341709.html

http://www.lbrq.cn/news/756289.html

相关文章:

  • 设计师对网站的意义/济南最新消息
  • 帮助企业做网站的销售/网络营销的营销方式
  • 福田区南山区龙岗区/成都网站seo报价
  • 对象存储oss做视频网站/百度网盘人工客服电话多少
  • seo流量/win10优化软件哪个好
  • 网站的二维码怎么做的/网站推广教程
  • 如何搭建网站/seo网站优化培训怎么做
  • 自助网站免费/百度小说排行榜第一名
  • 坪山手机网站建设/b站新人视频怎么推广
  • 企业做网站被骗/惠州百度seo排名
  • 王悦做网站/seo搜论坛
  • 免费信息网站建设平台/如何优化推广网站
  • 二手房网签合同在哪个网站做/设计外包网站
  • 不会做网站如何做seo/自己怎么建网站
  • 快速优化网站排名搜索/深圳网站制作公司
  • 关于网站建设与维护的参考文献/网络推广外包公司干什么的
  • 免费微网站制作教程视频/seo优化公司哪家好
  • 建设银行善融商务网站装修/百度游戏客服在线咨询
  • 国外建站系统/淘宝seo优化是什么
  • 怎么查网站备案接入商/武汉全网推广
  • 如何做自己网站的seo/精准引流推广团队
  • 我的世界做图的网站/百度公司的业务范围
  • 邢台网站建设服务商/seo点击软件
  • 东莞企业高端网站建设/百度新闻下载安装
  • 做阿里巴巴类似的网站/2022最新小学生新闻
  • 龙岩网站制作教程/湖南seo推广多少钱
  • 苏州网站建设公司找哪家/优化营商环境评价
  • 百度推广网站怎么做/汽车营销活动策划方案
  • 南京网站设计价格/现在推广什么app最挣钱
  • 广东华业建设有限公司网站/怎样把个人介绍放到百度
  • 【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现
  • 嵌入式硬件篇---电感本质
  • 设计模式之【快速通道模式】,享受VIP的待遇
  • 云原生俱乐部-RH124知识点总结(1)
  • AutoSar AP平台中EM,CM,SM,PHM,LT等AP基础软件都有宿主进程吗
  • 【Python办公】Excel转json(极速版)-可自定义累加字段(如有重复KEY)