处理毛孔问题.docx

上传人:b****8 文档编号:10286354 上传时间:2023-02-09 格式:DOCX 页数:24 大小:24.53KB
下载 相关 举报
处理毛孔问题.docx_第1页
第1页 / 共24页
处理毛孔问题.docx_第2页
第2页 / 共24页
处理毛孔问题.docx_第3页
第3页 / 共24页
处理毛孔问题.docx_第4页
第4页 / 共24页
处理毛孔问题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

处理毛孔问题.docx

《处理毛孔问题.docx》由会员分享,可在线阅读,更多相关《处理毛孔问题.docx(24页珍藏版)》请在冰豆网上搜索。

处理毛孔问题.docx

处理毛孔问题

处理毛孔问题.txt爱,就大声说出来,因为你永远都不会知道,明天和意外,哪个会先来!

石头记告诉我们:

凡是真心爱的最后都散了,凡是混搭的最后都团圆了。

你永远看不到我最寂寞的时候,因为在看不到你的时候就是我最寂寞的时候!

处理毛孔问题.txt∞-一人行,必会发情二人行,必会激情三人行,必有奸情就不会被珍惜。

真实的女孩不完美,完美的女孩不真实。

得之坦然,失之淡然,顺其自然,争其必然。

1.用仿制图章工具祛除大包和污点

2.建立新图层,双击左边工具栏的快速蒙版,调出选项,变更不透明度为40%

3.用画笔描绘填充皮肤部分,用不透明度为100%橡皮擦去毛发和褶皱

4.祛除皮肤以外的影象,边缘适当羽化

5.检查通道中的快速蒙版影象,填补漏图的地方

6.回到图层,删除皮肤以外的影象

7.关键部分在底层上用快速蒙版选区,选择皮肤部分,用滤镜USM锐化,加强皮肤毛孔影象

8.在上层皮肤上,用特殊模糊去斑,用高斯模糊柔化

9.调整被柔化皮肤层的,不透明度为80-90%,显露下层毛孔,同时调整色阶减小皮肤层的色差和反差,合并所有图层。

10.再新建一个图层,选择为屏幕(这是图象会变亮,调整不透明度为40%),在屏幕层上USM锐化,突出毛发

11.合并所有图层,调整色彩平衡,大体基本完成

12.剩下的是可调可不调的嘴唇,大致方法同上

13.完成效果:

(皮光了,毛孔还在)

 

设计一个简单的计算器应用程序VC++

原创↑

CONTENTS

?

程序设计内容与要求………………………………………………………1

?

程序设计环节………………………………………………………………1

?

程序简介………………………………………………………………1

?

程序基本实现思路……………………………………………………2

?

程序主要代码…………………………………………………………2

?

变量初始值……………………………………………………………2

?

主要实现代码…………………………………………………………3

?

心得体会……………………………………………………………………17

?

参考资料……………………………………………………………………18

?

程序界面图…………………………………………………………………19

 

Windows程序课程设计

课程设计题目:

设计一个简单的计算器应用程序

一、设计目标与内容:

1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;

2.基本掌握面向对象程序设计的基本思路和方法;

3.掌握用VC++开发应用程序的的一般步骤和方法;

4.能够利用所学的基本知识,设计一个简单的计算器应用程序,实现基本的加、减、乘、除、求平方根等基本运算(必须实现的功能),实现求角度的正弦、余弦、正切,实现求指数、自然对数、常用对数等基本运算(这部分功能选做)。

5.在程序中注意处理数据和运算符的输入,计算结果的显示。

二,设计要求:

1.用VC++进行编码,实现应用程序的功能。

注重编码质量,代码要有适当的注释;

2.提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。

三.程序设计环节:

1.程序简介:

本程序在VS.NET2005的c++语言中的MFC开发制作,经测试(使用动态dll库)在同等环境(VS.NET2005)下可以正常运行执行文件完成计算器功能。

使用静态dll库时候,不改变执行程序路径可以正常运行,但移动到其他位置的执行文件运行会缺少3D按钮效果,其他功能不变。

但在VC6.0和.NET2003环境下不能直接使用(提示缺少库文件)。

解决办法是使用installshield制作软件安装包。

在没有装有VS.NET2005的机器上可以用安装包安装该计算器,该安装包会在桌面放置一程序快捷方式和卸载图标。

本软件不写注册表。

2.程序基本实现思路:

1当前输入的数据,和数据处理过程均由变量n完成。

因为最多是2元运算,另设一变量n_2表示第2个数,需要时由n_2=n赋值。

2数字录入部内容相似,首先建立一个函数inum(),负责处理所输入的数字,按下相应数字键时候,调用inum()完成数字的输入和显示。

3数据计算部分.由函数operation(charope),通过选择所按下的运算符(该函数的变量)来完成相应的计算并显示。

由于运算符分为单元运算和双元所以具有类似性,分开处理。

4小数输入。

按下小数点后,变量setxiaoshu=true,激活小数输入功能。

inum()做出输入小数的判断并输出预期数。

5正负号的改变可以通过每按下该键后执行n=-n来执行。

对于负数的录入功能,也由inum()做出判断,完成正确的负数录入过程。

6等号的实现调用operation(operate),完成相应运算。

7删除一个字符,用n=long(n/10)的思路来完成,由于long的范围,所以删除只能实现10位以内的删除。

8CE和C键。

CE负责清楚欲输入的第2个数据的相关变量,C清空所有变量,重置计算器。

3.根据上述设想编写程序,主要代码如下:

变量初始值(dlg.cpp文件):

#include"stdafx.h"

#include"计算器.h"

#include"计算器Dlg.h"

#include"math.h"

#include"time.h"//可以不用,屏蔽srand()

#include"stdlib.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#endif

C计算器Dlg:

:

C计算器Dlg(CWnd*pParent/*=NULL*/)

:

CDialog(C计算器Dlg:

:

IDD,pParent)

n(0)

setxiaoshu(false)

xiaoshui(0)

innum(0)

n_2(0)

operate(0)

setnew(false)

BEGIN_MESSAGE_MAP(C计算器Dlg,CDialog)

…….//系统消息和控件的函数

主要实现代码:

(dlg.cpp文件):

//注:

下面所有控件名称使用加粗字体和下划线表示该按键

voidC计算器Dlg:

:

OnPaint()//重写OnPaint(),实现,界面颜色的改变

{

intc_r,c_g,c_b,c;//3个变量分别代表R/G/B

//srand(time(0));//控制随机函数rand()的取值时间(间隔1s左右更新值),后来为实现每次按键都变色把这句去掉了

c_r=rand()%256;//rand()%256代表变量取值为0-255之间的整数,下同

c_g=rand()%256;

c_b=rand()%256;

c=rand()%4;//c=0-3,即分为4种情况,分别绘制不同的颜色方案.实现更多色彩.

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

//Centericoninclientrectangle

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

//Drawtheicon

dc.DrawIcon(x,y,m_hIcon);

}

else

{

if(c==0)//蓝色渐变,其他两种颜色随机

{

CPaintDCdc(this);

CRectrc;

GetClientRect(&rc);

intnHeight=rc.Height();

for(inti=0;nHeight>=0;nHeight--,i++)

{

CPenpen;

pen.CreatePen(PS_SOLID,1,RGB(c_r,c_g,i));

CPen*pOldPen=dc.SelectObject(&pen);

dc.MoveTo(rc.left,i);

dc.LineTo(rc.right,i);

dc.SelectObject(pOldPen);

pen.DeleteObject();

}

}

elseif(c==1)//绿色渐变,其他两种颜色随机

{

CPaintDCdc(this);

CRectrc;

GetClientRect(&rc);

intnHeight=rc.Height();

for(inti=0;nHeight>=0;nHeight--,i++)

{

CPenpen;

pen.CreatePen(PS_SOLID,1,RGB(c_r,i,c_b));

CPen*pOldPen=dc.SelectObject(&pen);

dc.MoveTo(rc.left,i);

dc.LineTo(rc.right,i);

dc.SelectObject(pOldPen);

pen.DeleteObject();

}

}

elseif(c==2)//红色渐变,其他两种颜色随机

{

CPaintDCdc(this);

CRectrc;

GetClientRect(&rc);

intnHeight=rc.Height();

for(inti=0;nHeight>=0;nHeight--,i++)

{

CPenpen;

pen.CreatePen(PS_SOLID,1,RGB(i,c_g,c_r));

CPen*pOldPen=dc.SelectObject(&pen);

dc.MoveTo(rc.left,i);

dc.LineTo(rc.right,i);

dc.SelectObject(pOldPen);

pen.DeleteObject();

}

}

else//都不渐变,所有随机

{

CPaintDCdc(this);

CRectrc;

GetClientRect(&rc);

intnHeight=rc.Height();

for(inti=0;nHeight>=0;nHeight--,i++)

{

CPenpen;

pen.CreatePen(PS_SOLID,1,RGB(c_r,c_g,c_r));

CPen*pOldPen=dc.SelectObject(&pen);

dc.MoveTo(rc.left,i);

dc.LineTo(rc.right,i);

dc.SelectObject(pOldPen);

pen.DeleteObject();

}

}

}

}

voidC计算器Dlg:

:

OnBnClickedButton31()//控件pi对应的函数按键pi的处理

n=3.14159265358979;//把pi值3.14159265358979赋给n

UpdateData(false);

Invalidate();//重新执行OnPaint()函数实现每一次按键,界面自动变色.下面各控件对应函数也调用这函数,如控件对应函数//没有直接显示,就是在被调用的函数中有该函数

}

////////////////////////////////////////以下部分处理方式相似(数字录入)//////////////////

voidC计算器Dlg:

:

OnBnClickedButton0()//控件0对应的函数.调用inum()产生预期的数.包括整数/小数/正数/负数.下面1-9同

{按键0的处理

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();//setnew为true,清除所有控制变量,在上次计算出结果后

innum=0;//把0赋给变量inum,执行相应的+++-//可以不用按C键清除直接按数字键开始下一个运

C计算器Dlg:

:

inum(innum);//完成数据的输入过程.//算.setnew=true会在每个单元运算符和等号中出现.setnew

UpdateData(false);//在屏幕上显示当前n的值,下同//为false,继续输入该数据.setnew=false出现在每个双元运算

}//符中.因OnBnClickedButton23()中已包含Invalidate(),但OnBnClickedButton23()不是每次都执行,//为避免代码的重复执行,采用ifelse形式.

voidC计算器Dlg:

:

OnBnClickedButton1()//控件1对应的函数按键1的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=1;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton2()//控件2对应的函数按键2的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=2;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton3()//控件3对应的函数按键3的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=3;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton4()//控件4对应的函数按键4的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=4;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton5()//控件5对应的函数按键5的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=5;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton6()//控件6对应的函数按键6的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=6;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton7()//控件7对应的函数按键7的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=7;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton8()//控件8对应的函数按键8的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=8;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

voidC计算器Dlg:

:

OnBnClickedButton9()//控件9对应的函数按键9的处理

{

if(setnew)C计算器Dlg:

:

OnBnClickedButton23();elseInvalidate();

innum=9;

C计算器Dlg:

:

inum(innum);

UpdateData(false);

}

////////////////////////////////////////////////结束////////////////////////////////////////////////////////

 

///////////////////////////////////以下部分处理方式相似(双元运算)///////////////////////

voidC计算器Dlg:

:

OnBnClickedButton16()//控件+对应的函数.下面的-*/x^y同+符号的处理

{

C计算器Dlg:

:

OnBnClickedIsButton();//自动完成上次未完成的运算.当上一次计算完双元运算没有按等号键时候,如只按//下1+1而没有按=的时候,直接按+.可以实现连续计算,从而省去每次都按=的麻烦,//更符合使用的习惯.

n_2=n;//因为是双元运算,按下+后,把输入值存入另一个数据中,开始输入新的数据

C计算器Dlg:

:

setempty();//置空n的各项参数,便于以后重新输入新n值时不影响

setnew=false;//setnew=false(由数字录入部分做出相应).不是在重新输入数据,下面按数字键时接着录入部分执行相应操作

operate='+';//操作符为+,,由OnBnClickedIsButton()处理加法运算

}

voidC计算器Dlg:

:

OnBnClickedButton15()//控件-对应的函数.-符号的处理

{

C计算器Dlg:

:

OnBnClickedIsButton();

n_2=n;

C计算器Dlg:

:

setempty();

setnew=false;

operate='-';

}

voidC计算器Dlg:

:

OnBnClickedButton14()//控件*对应的函数.*符号的处理

{

C计算器Dlg:

:

OnBnClickedIsButton();

n_2=n;

C计算器Dlg:

:

setempty();

setnew=false;

operate='*';

}

voidC计算器Dlg:

:

OnBnClickedButton13()//控件/对应的函数./符号的处理

{

C计算器Dlg:

:

OnBnClickedIsButton();

n_2=n;

C计算器Dlg:

:

setempty();

setnew=false;

operate='/';

}

voidC计算器Dlg:

:

OnBnClickedButton27()//控件x^y对应的函数.x^y符号的处理

{

C计算器Dlg:

:

OnBnClickedIsButton();

n_2=n;

C计算器Dlg:

:

setempty();

operate='y';

setnew=false;

}

////////////////////////////////////////////////结束///////////////////////////////////////////////////////

 

////////////////////////////////////////以下部分处理方式相似(单元运算)//////////////////

voidC计算器Dlg:

:

OnBnClickedButton19()//控件1/x对应的函数.下面符号处理类似1/x符号的处理

{

operate='x';//下面执行1/x的运算

C计算器Dlg:

:

operation(operate);//单元运算,按下该符号直接进行运算

UpdateData(false);

operate='0';//在这个运算符算出的数据后,输入另外一个数据时候,按下双元运算符因为会先执行OnBnClickedIsButton(),操//作符为0,什么也不执行

setnew=true;//在数字录入部分做出判断,setnew=true按下数字键时候,执行OnBnClickedButton23(),清空变量.开始新的运算

voidC计算器Dlg:

:

OnBnClickedButton17()//控件sqrt对应的函数.sqrt符号的处理

{

operate='q';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0';

setnew=true;

}

voidC计算器Dlg:

:

OnBnClickedButton24()//控件sin对应的函数.sin符号的处理

{

operate='s';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0';

setnew=true;

}

voidC计算器Dlg:

:

OnBnClickedButton25()//控件cos对应的函数.cos符号的处理

{

operate='c';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0';

setnew=true;

}

voidC计算器Dlg:

:

OnBnClickedButton26()//控件tan对应的函数.tan符号的处理

{

operate='t';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0';

setnew=true;

}

voidC计算器Dlg:

:

OnBnClickedButton29()//控件ln对应的函数.ln符号的处理

{

operate='n';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0';

setnew=true;

}

voidC计算器Dlg:

:

OnBnClickedButton30()//控件lg对应的函数.lg符号的处理

{

operate='g';

C计算器Dlg:

:

operation(operate);

UpdateData(false);

operate='0'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1