Skip to content

Commit e816355

Browse files
committed
beauty enhance
1 parent 06ded89 commit e816355

4 files changed

Lines changed: 190 additions & 58 deletions

File tree

windows/APIExample/APIExample/APIExample.rc

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -437,27 +437,6 @@ BEGIN
437437
LTEXT "vloume",IDC_STATIC_AUDIO_VLOUME,327,386,42,8
438438
END
439439

440-
IDD_DIALOG_BEAUTY DIALOGEX 0, 0, 632, 400
441-
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
442-
FONT 8, "MS Shell Dlg", 400, 0, 0x1
443-
BEGIN
444-
LTEXT "",IDC_STATIC_VIDEO,1,0,483,310,NOT WS_VISIBLE
445-
LISTBOX IDC_LIST_INFO_BROADCASTING,491,0,139,312,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
446-
LTEXT "Channel Name",IDC_STATIC_CHANNELNAME,11,328,48,8
447-
EDITTEXT IDC_EDIT_CHANNELNAME,71,326,218,13,ES_AUTOHSCROLL
448-
PUSHBUTTON "JoinChannel",IDC_BUTTON_JOINCHANNEL,307,326,50,14
449-
LTEXT "lightening contrast",IDC_STATIC_BEAUTY_LIGHTENING_CONTRAST_LEVEL,11,353,93,8
450-
COMBOBOX IDC_COMBO_BEAUTE_LIGHTENING_CONTRAST_LEVEL,80,352,79,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
451-
LTEXT "",IDC_STATIC_DETAIL,442,325,181,58
452-
LTEXT "lightening",IDC_STATIC_BEAUTY_LIGHTENING,11,370,48,8
453-
EDITTEXT IDC_EDIT_LIGHTENING,79,369,80,13,ES_AUTOHSCROLL
454-
LTEXT "redness",IDC_STATIC_BEAUTY_REDNESS,166,353,48,8
455-
LTEXT "smoothness",IDC_STATIC_BEAUTY_SMOOTHNESS,166,371,48,8
456-
EDITTEXT IDC_EDIT_BEAUTY_REDNESS,222,351,80,13,ES_AUTOHSCROLL
457-
EDITTEXT IDC_EDIT_BEAUTY_SMOOTHNESS,222,370,80,13,ES_AUTOHSCROLL
458-
CONTROL "Beauty Enable",IDC_CHECK_BEAUTY_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,310,358,62,10
459-
END
460-
461440
IDD_DIALOG_PERCALL_TEST DIALOGEX 0, 0, 632, 400
462441
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
463442
FONT 8, "MS Shell Dlg", 400, 0, 0x1
@@ -620,6 +599,37 @@ BEGIN
620599
LTEXT "Share Info",IDC_STATIC_SHARE,17,370,38,8
621600
END
622601

602+
IDD_DIALOG_BEAUTY DIALOGEX 0, 0, 632, 400
603+
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
604+
FONT 8, "MS Shell Dlg", 400, 0, 0x1
605+
BEGIN
606+
LTEXT "",IDC_STATIC_VIDEO,0,0,483,289,NOT WS_VISIBLE
607+
LISTBOX IDC_LIST_INFO_BROADCASTING,491,0,139,286,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
608+
LTEXT "Channel Name",IDC_STATIC_CHANNELNAME,12,309,48,8
609+
EDITTEXT IDC_EDIT_CHANNELNAME,72,307,115,13,ES_AUTOHSCROLL
610+
PUSHBUTTON "JoinChannel",IDC_BUTTON_JOINCHANNEL,194,306,50,14
611+
LTEXT "lightening contrast",IDC_STATIC_BEAUTY_LIGHTENING_CONTRAST_LEVEL,12,334,64,8
612+
COMBOBOX IDC_COMBO_BEAUTE_LIGHTENING_CONTRAST_LEVEL,81,333,79,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
613+
LTEXT "",IDC_STATIC_DETAIL,485,297,132,56
614+
LTEXT "lightening",IDC_STATIC_BEAUTY_LIGHTENING,12,351,45,8
615+
LTEXT "redness",IDC_STATIC_BEAUTY_REDNESS,167,334,41,8
616+
LTEXT "smoothness",IDC_STATIC_BEAUTY_SMOOTHNESS,167,352,42,8
617+
CONTROL "Beauty Enable",IDC_CHECK_BEAUTY_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,251,307,62,10
618+
GROUPBOX "Beauty",IDC_STATIC_BEaUTY,0,300,352,67
619+
GROUPBOX "Enhance",IDC_STATIC,0,373,412,24
620+
CONTROL "Colorful Enhance",IDC_CHECK_ENHANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,384,75,13
621+
CONTROL "",IDC_SLIDER_STRENGTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,130,382,104,15
622+
LTEXT "Strength",IDC_STATIC_STRENTH,92,389,29,8
623+
LTEXT "Skin Protect",IDC_STATIC_SKIN_PROTECT,241,389,40,8
624+
LTEXT "Strength",IDC_STATIC_STRENTH2,95,389,29,8
625+
LTEXT "Static",IDC_STATIC,267,389,19,8
626+
CONTROL "",IDC_SLIDER_SKIN_PROTECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,294,382,110,15
627+
CONTROL "Video Denoise",IDC_CHECK_VIDEO_DENOISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,370,299,58,10
628+
CONTROL "",IDC_SLIDER_REDNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,219,330,121,15
629+
CONTROL "",IDC_SLIDER_LIGHTENING,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,55,348,100,15
630+
CONTROL "",IDC_SLIDER_SMOOTHNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,222,346,117,15
631+
END
632+
623633

624634
/////////////////////////////////////////////////////////////////////////////
625635
//
@@ -732,12 +742,6 @@ BEGIN
732742
BOTTOMMARGIN, 397
733743
END
734744

735-
IDD_DIALOG_BEAUTY, DIALOG
736-
BEGIN
737-
RIGHTMARGIN, 630
738-
BOTTOMMARGIN, 397
739-
END
740-
741745
IDD_DIALOG_PERCALL_TEST, DIALOG
742746
BEGIN
743747
RIGHTMARGIN, 630
@@ -779,6 +783,12 @@ BEGIN
779783
RIGHTMARGIN, 630
780784
BOTTOMMARGIN, 397
781785
END
786+
787+
IDD_DIALOG_BEAUTY, DIALOG
788+
BEGIN
789+
RIGHTMARGIN, 630
790+
BOTTOMMARGIN, 397
791+
END
782792
END
783793
#endif // APSTUDIO_INVOKED
784794

@@ -873,11 +883,6 @@ BEGIN
873883
0
874884
END
875885

876-
IDD_DIALOG_BEAUTY AFX_DIALOG_LAYOUT
877-
BEGIN
878-
0
879-
END
880-
881886
IDD_DIALOG_PERCALL_TEST AFX_DIALOG_LAYOUT
882887
BEGIN
883888
0
@@ -913,6 +918,11 @@ BEGIN
913918
0
914919
END
915920

921+
IDD_DIALOG_BEAUTY AFX_DIALOG_LAYOUT
922+
BEGIN
923+
0
924+
END
925+
916926

917927
/////////////////////////////////////////////////////////////////////////////
918928
//

windows/APIExample/APIExample/Advanced/Beauty/CAgoraBeautyDlg.cpp

Lines changed: 111 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,7 @@ void CAgoraBeautyDlg::RenderLocalVideo()
111111
void CAgoraBeautyDlg::ResumeStatus()
112112
{
113113
m_edtChannel.SetWindowText(_T(""));
114-
m_edtLightLevel.SetWindowText(_T(""));
115-
m_edtReadness.SetWindowText(_T(""));
116-
m_edtSmoothness.SetWindowText(_T(""));
114+
117115
m_staDetail.SetWindowText(_T(""));
118116

119117
m_chkBeauty.SetCheck(BST_UNCHECKED);
@@ -122,6 +120,18 @@ void CAgoraBeautyDlg::ResumeStatus()
122120
SetBeauty(false);
123121
m_joinChannel = false;
124122
m_initialize = false;
123+
124+
m_sldStrength.SetRange(0, 100);
125+
m_sldStrength.SetPos(50);
126+
m_sldSkin.SetRange(0, 100);
127+
m_sldSkin.SetPos(100);
128+
129+
m_sdlLightening.SetRange(0, 100);
130+
m_sdlLightening.SetPos(0);
131+
m_sldRedness.SetRange(0, 100);
132+
m_sldRedness.SetPos(0);
133+
m_sldSmoothness.SetRange(0, 100);
134+
m_sldSmoothness.SetPos(0);
125135
}
126136

127137

@@ -133,16 +143,24 @@ void CAgoraBeautyDlg::DoDataExchange(CDataExchange* pDX)
133143
DDX_Control(pDX, IDC_CHECK_BEAUTY_ENABLE, m_chkBeauty);
134144
DDX_Control(pDX, IDC_BUTTON_JOINCHANNEL, m_btnJoinChannel);
135145
DDX_Control(pDX, IDC_COMBO_BEAUTE_LIGHTENING_CONTRAST_LEVEL, m_cmbBeautyLevel);
136-
DDX_Control(pDX, IDC_EDIT_LIGHTENING, m_edtLightLevel);
146+
137147
DDX_Control(pDX, IDC_STATIC_BEAUTY_REDNESS, m_staRedness);
138148
DDX_Control(pDX, IDC_STATIC_BEAUTY_SMOOTHNESS, m_staSoomthness);
139-
DDX_Control(pDX, IDC_EDIT_BEAUTY_REDNESS, m_edtReadness);
140-
DDX_Control(pDX, IDC_EDIT_BEAUTY_SMOOTHNESS, m_edtSmoothness);
149+
141150
DDX_Control(pDX, IDC_STATIC_VIDEO, m_staVideoArea);
142151
DDX_Control(pDX, IDC_LIST_INFO_BROADCASTING, m_lstInfo);
143152
DDX_Control(pDX, IDC_STATIC_BEAUTY_LIGHTENING_CONTRAST_LEVEL, m_staLightContrast);
144153
DDX_Control(pDX, IDC_STATIC_BEAUTY_LIGHTENING, m_staLight);
145154
DDX_Control(pDX, IDC_STATIC_DETAIL, m_staDetail);
155+
DDX_Control(pDX, IDC_CHECK_ENHANCE, m_chkEnhance);
156+
DDX_Control(pDX, IDC_SLIDER_STRENGTH, m_sldStrength);
157+
DDX_Control(pDX, IDC_STATIC_SKIN_PROTECT, m_staSkin);
158+
DDX_Control(pDX, IDC_SLIDER_SKIN_PROTECT, m_sldSkin);
159+
DDX_Control(pDX, IDC_CHECK_VIDEO_DENOISE, m_chkVideoDenoise);
160+
161+
DDX_Control(pDX, IDC_SLIDER_LIGHTENING, m_sdlLightening);
162+
DDX_Control(pDX, IDC_SLIDER_REDNESS, m_sldRedness);
163+
DDX_Control(pDX, IDC_SLIDER_SMOOTHNESS, m_sldSmoothness);
146164
}
147165

148166

@@ -156,9 +174,36 @@ BEGIN_MESSAGE_MAP(CAgoraBeautyDlg, CDialogEx)
156174
ON_WM_SHOWWINDOW()
157175
ON_BN_CLICKED(IDC_CHECK_BEAUTY_ENABLE, &CAgoraBeautyDlg::OnBnClickedCheckbeautyCtrlEnable)
158176
ON_LBN_SELCHANGE(IDC_LIST_INFO_BROADCASTING, &CAgoraBeautyDlg::OnSelchangeListInfoBroadcasting)
177+
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_REDNESS, &CAgoraBeautyDlg::OnNMCustomdrawSliderRedness)
178+
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_LIGHTENING, &CAgoraBeautyDlg::OnNMCustomdrawSliderLightening)
179+
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_SMOOTHNESS, &CAgoraBeautyDlg::OnNMCustomdrawSliderSmoothness)
180+
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_STRENGTH, &CAgoraBeautyDlg::OnNMCustomdrawSliderStrength)
181+
ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_SKIN_PROTECT, &CAgoraBeautyDlg::OnNMCustomdrawSliderSkinProtect)
182+
ON_BN_CLICKED(IDC_CHECK_ENHANCE, &CAgoraBeautyDlg::OnBnClickedCheckEnhance)
183+
ON_BN_CLICKED(IDC_CHECK_VIDEO_DENOISE, &CAgoraBeautyDlg::OnBnClickedCheckVideoDenoise)
184+
ON_CBN_SELCHANGE(IDC_COMBO_BEAUTE_LIGHTENING_CONTRAST_LEVEL, &CAgoraBeautyDlg::OnSelchangeComboBeauteLighteningContrastLevel)
159185
END_MESSAGE_MAP()
160186

161187

188+
void CAgoraBeautyDlg::SetBeauty()
189+
{
190+
if (!m_rtcEngine) return;
191+
BeautyOptions option;
192+
option.rednessLevel = m_sldRedness.GetPos() / 100.0f;
193+
option.lighteningLevel = m_sdlLightening.GetPos() / 100.0f;
194+
option.smoothnessLevel = m_sldSmoothness.GetPos() / 100.0f;
195+
option.lighteningContrastLevel = (agora::rtc::BeautyOptions::LIGHTENING_CONTRAST_LEVEL)m_cmbBeautyLevel.GetCurSel();
196+
m_rtcEngine->setBeautyEffectOptions(m_chkBeauty.GetCheck() != 0, option);
197+
}
198+
199+
void CAgoraBeautyDlg::SetColorful()
200+
{
201+
if (!m_rtcEngine) return;
202+
ColorEnhanceOptions options;
203+
options.skinProtectLevel = m_sldSkin.GetPos() / 100.0f;
204+
options.strengthLevel = m_sldStrength.GetPos() / 100.0f;
205+
m_rtcEngine->setColorEnhanceOptions(m_chkEnhance.GetCheck()!=0,options);
206+
}
162207

163208
// join channel or level channel.
164209
void CAgoraBeautyDlg::OnBnClickedButtonJoinchannel()
@@ -213,25 +258,24 @@ void CAgoraBeautyDlg::SetBeauty(bool enabled,
213258
void CAgoraBeautyDlg::OnBnClickedCheckbeautyCtrlEnable()
214259
{
215260
bool enabled = m_chkBeauty.GetCheck() == BST_CHECKED ? TRUE : FALSE;
261+
m_sldRedness.EnableWindow(enabled);
262+
m_sldSmoothness.EnableWindow(enabled);
263+
m_sdlLightening.EnableWindow(enabled);
264+
216265
//Beauty options to set
217266
CString tmp;
218267
auto lighteningContrastLevel = (agora::rtc::BeautyOptions::LIGHTENING_CONTRAST_LEVEL)m_cmbBeautyLevel.GetCurSel();
219268
float lighteningLevel;
220269
float rednessLevel;
221270
float smoothnessLevel;
222-
m_edtLightLevel.GetWindowText(tmp);
223-
auto func = [](float a)->float {
224-
return a <0.0f ? 0.0f : a>1.0f ? 1.0f : a;
225-
};
226-
lighteningLevel = func(static_cast<float>(_ttof(tmp)/10));
227-
m_edtReadness.GetWindowText(tmp);
228-
rednessLevel = func(static_cast<float>(_ttof(tmp)/10));
229-
m_edtSmoothness.GetWindowText(tmp);
230-
smoothnessLevel = func(static_cast<float>(_ttof(tmp)/10));
271+
lighteningLevel = m_sdlLightening.GetPos() / 100.0f;
272+
rednessLevel = m_sldRedness.GetPos() / 100.0f;
273+
smoothnessLevel = m_sldSmoothness.GetPos() / 100.0f;
231274
CString strInfo;
232275
CString strlighteningContrastLevel;
233276
m_cmbBeautyLevel.GetWindowText(strlighteningContrastLevel);
234277
SetBeauty(enabled, lighteningContrastLevel, lighteningLevel, rednessLevel, smoothnessLevel);
278+
SetColorful();
235279
if (enabled)
236280
{
237281
strInfo.Format(_T("lighteningContrastLevel:%s,\nlightening:%.1f,\nredness:%.1f,\nsmoothness:%.1f"),
@@ -485,3 +529,55 @@ void CAgoraBeautyDlg::OnSelchangeListInfoBroadcasting()
485529
m_lstInfo.GetText(sel, strDetail);
486530
m_staDetail.SetWindowText(strDetail);
487531
}
532+
533+
534+
void CAgoraBeautyDlg::OnNMCustomdrawSliderRedness(NMHDR *pNMHDR, LRESULT *pResult)
535+
{
536+
SetBeauty();
537+
}
538+
539+
540+
void CAgoraBeautyDlg::OnNMCustomdrawSliderLightening(NMHDR *pNMHDR, LRESULT *pResult)
541+
{
542+
SetBeauty();
543+
}
544+
545+
546+
void CAgoraBeautyDlg::OnNMCustomdrawSliderSmoothness(NMHDR *pNMHDR, LRESULT *pResult)
547+
{
548+
SetBeauty();
549+
}
550+
551+
552+
void CAgoraBeautyDlg::OnNMCustomdrawSliderStrength(NMHDR *pNMHDR, LRESULT *pResult)
553+
{
554+
SetColorful();
555+
}
556+
557+
558+
void CAgoraBeautyDlg::OnNMCustomdrawSliderSkinProtect(NMHDR *pNMHDR, LRESULT *pResult)
559+
{
560+
SetColorful();
561+
}
562+
563+
564+
void CAgoraBeautyDlg::OnBnClickedCheckEnhance()
565+
{
566+
m_sldStrength.EnableWindow(m_chkEnhance.GetCheck() != 0);
567+
m_sldSkin.EnableWindow(m_chkEnhance.GetCheck() != 0);
568+
569+
SetColorful();
570+
}
571+
572+
573+
void CAgoraBeautyDlg::OnBnClickedCheckVideoDenoise()
574+
{
575+
VideoDenoiserOptions options;
576+
m_rtcEngine->setVideoDenoiserOptions(m_chkVideoDenoise.GetCheck() != 0,options);
577+
}
578+
579+
580+
void CAgoraBeautyDlg::OnSelchangeComboBeauteLighteningContrastLevel()
581+
{
582+
SetBeauty();
583+
}

windows/APIExample/APIExample/Advanced/Beauty/CAgoraBeautyDlg.h

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ class CAgoraBeautyDlg : public CDialogEx
115115
CBeautyEventHandler m_eventHandler;
116116

117117
protected:
118+
void SetBeauty();
119+
void SetColorful();
118120
virtual void DoDataExchange(CDataExchange* pDX);
119121
LRESULT OnEIDJoinChannelSuccess(WPARAM wParam, LPARAM lParam);
120122
LRESULT OnEIDLeaveChannel(WPARAM wParam, LPARAM lParam);
@@ -129,11 +131,9 @@ class CAgoraBeautyDlg : public CDialogEx
129131
CButton m_chkBeauty;
130132
CButton m_btnJoinChannel;
131133
CComboBox m_cmbBeautyLevel;
132-
CEdit m_edtLightLevel;
134+
133135
CStatic m_staRedness;
134136
CStatic m_staSoomthness;
135-
CEdit m_edtReadness;
136-
CEdit m_edtSmoothness;
137137
CStatic m_staVideoArea;
138138
CListBox m_lstInfo;
139139
CStatic m_staLightContrast;
@@ -146,6 +146,23 @@ class CAgoraBeautyDlg : public CDialogEx
146146
virtual BOOL PreTranslateMessage(MSG* pMsg);
147147
CStatic m_staDetail;
148148
afx_msg void OnSelchangeListInfoBroadcasting();
149+
150+
CSliderCtrl m_sldStrength;
151+
CStatic m_staSkin;
152+
CSliderCtrl m_sldSkin;
153+
CButton m_chkVideoDenoise;
154+
CButton m_chkEnhance;
155+
CSliderCtrl m_sdlLightening;
156+
CSliderCtrl m_sldRedness;
157+
CSliderCtrl m_sldSmoothness;
158+
afx_msg void OnNMCustomdrawSliderRedness(NMHDR *pNMHDR, LRESULT *pResult);
159+
afx_msg void OnNMCustomdrawSliderLightening(NMHDR *pNMHDR, LRESULT *pResult);
160+
afx_msg void OnNMCustomdrawSliderSmoothness(NMHDR *pNMHDR, LRESULT *pResult);
161+
afx_msg void OnNMCustomdrawSliderStrength(NMHDR *pNMHDR, LRESULT *pResult);
162+
afx_msg void OnNMCustomdrawSliderSkinProtect(NMHDR *pNMHDR, LRESULT *pResult);
163+
afx_msg void OnBnClickedCheckEnhance();
164+
afx_msg void OnBnClickedCheckVideoDenoise();
165+
afx_msg void OnSelchangeComboBeauteLighteningContrastLevel();
149166
};
150167

151168

0 commit comments

Comments
 (0)