code thi thuc hanh xu ly anh qt creator
TRANSCRIPT
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
1/27
TNG HP CC BUI THC HNH
BUI 1,2
L Duy Thanh-
Th vin:
#include#include#include
#include
1. X l button Chn
voidMainWindow::on_btnchon_cliced!" Q$t%ing&name'QFileDialog::get(penFile)ame!thi*+,*elect&ile,+,-:.,"/ i&!&name0i*-mpt1!"" %etu%n/
ui2>txtchonanh2>*et3ext!&name"/ ..QPixmappixmap!&name"/ ..QLabel4label'newQLabel!"/ ..label2>*etPixmap!pixmap"/ ..label2>*how!"/5
2. Th! "#! $%n& t'! (nh X%)
3. voidMainWindow::on_bnt*taxam_cliced!"
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
2/27
4. 5. Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh6. ..3aoanhet7uac8ichthuocbanganhdauvao7. Q6mage
image_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/8. intc'ui2>txtmucxam2>text!"0to6nt!"/..biendoichuoithanh*o9. &o%!intx'/xtxtmucxam2>text!"0to6nt!"/..biendoichuoithanh*o &o%!intx'/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
3/27
i&!out>=@@"out'=@@/..iemt%aout el*ei&!outpiamapvagancholabel label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/
..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*how!"/
}
.+ Th! "#! "/ t0n& h(n (nh 3%)
voidMainWindow::on_bntanhxam_pt_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh ..3aoanhet7uac8ichthuocbanganhdauvao Qimageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ &loatc'ui2>txtdtphan2>text!"0toFloat!"/..biendoichuoithanh*o &o%!intx'/ximage_out2>text!""/ tochucdo!image_out+H=I"/
}
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
4/27
4+ Th "#! "/ t0n& h(n (nh )-u
voidMainWindow::on_bntanhmau_tp_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh ..3aoanhet7uac8ichthuocbanganhdauvao
Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ &loatc'ui2>txtdtphan2>text!"0toFloat!"/..biendoichuoithanh*o &o%!intx'/xtxtphannguong2>text!"0to6nt!"/..biendoichuoithanh*o &o%!intx'/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
5/27
image_out0*etPixel!x+1+colo%_out"/ 5 ..Aienthianhgoc QLabel4label_in'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/
..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*how!"/5
8+ Ph6n n&07n& (nh )-u
voidMainWindow::on_bntphannguonganhmau_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh ..3aoanhet7uac8ichthuocbanganhdauvao Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ intc'ui2>txtphannguong2>text!"0to6nt!"/..biendoichuoithanh*o &o%!intx'/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
6/27
i&!&name0i*-mpt1!"" %etu%n/ ui2>txtchonanhH2>*et3ext!&name"/5
voidMainWindow::on_bntchonanh=_cliced!" Q$t%ing&name'QFileDialog::get(penFile)ame!"/ i&!&name0i*-mpt1!"" %etu%n/ ui2>txtchonanh=2>*et3ext!&name"/5
voidMainWindow::on_bntconganh_cliced!" Q6mageanhH!ui2>txtchonanhH2>text!""/ Q6mageanh=!ui2>txtchonanh=2>text!""/ &loattile'ui2>txtopcciti2>text!"0toFloat!"/ Q6mageimagecong!anhH0width!"+anhH0height!"+Q6mage::Fo%mat_9;="/ &o%!intx'/xtxtopcciti2>text!"0toFloat!"/ Q6mageimaget%u!anhH0width!"+anhH0height!"+Q6mage::Fo%mat_9;="/ &o%!intx'/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
7/27
&o%!int1'/1piamapvagancholabel label_inH2>*etPixmap!QPixmap::&%om6mage!anhH""/ label_inH2>*how!"/
QLabel4label_in='newQLabel!"/ ..Doiimage2>piamapvagancholabel label_in=2>*etPixmap!QPixmap::&%om6mage!anh=""/ label_in=2>*how!"/
..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!imaget%u""/ label_out2>*how!"/5
1=+ T# >h?> "@ (nh 3%)
voidMainWindow::tochucdo!con*tQ6mageGimg+con*tintGhi*_height" inthJ=@K/ &o%!inti'/i*etPixmap!QPixmap::&%om6mage!img""/ label_in2>*how!"/ QLabel4label_out'newQLabel!"/ label_out2>*etPixmap!QPixmap::&%om6mage!img_hi*""/ label_out2>*how!"/
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
8/27
}
G! h-) t# >h?> "@
voidMainWindow::on_btnchon_=_cliced!" Q6mageimage!ui2>txtchonanh_tcd2>text!""/ tochucdo!image+H=I"/5voidMainWindow::on_bntchon_tcd_cliced!" Q$t%ing&name'QFileDialog::get(penFile)ame!"/ i&!&name0i*-mpt1!"" %etu%n/ ui2>txtchonanh_tcd2>*et3ext!&name"/
}A0u h! b%o h-) t;on& lD hEFE;$
p%ivate: Bi::MainWindow4ui/ voidtochucdo!con*tQ6mageGimg+con*tintGhi*_height"/ voidtochucdoanhmau!con*tQ6mageGimage+con*tintGhi*_height"/
}
11+ T# >h?> "@ (nh )-u
voidMainWindow::tochucdoanhmau!con*tQ6mageGimage+con*tintGhi*_height"
Q6mageimage_hi*H'Q6mage!=@K+hi*_height+Q6mage::Fo%mat_9;="/ Q6mageimage_hi*='Q6mage!=@K+hi*_height+Q6mage::Fo%mat_9;="/
Q6mageimage_hi*'Q6mage!=@K+hi*_height+Q6mage::Fo%mat_9;="/ image_hi*H0&ill!Qt::white"/ image_hi*=0&ill!Qt::white"/ image_hi*0&ill!Qt::white"/ inth%J=@K+hgJ=@K+hbJ=@K/ &o%!inti'/imax"max'h%Ji/ i&!hgJi>max"max'hgJi/ i&!hbJi>max"max'hbJi/ 5
intlineAeight/
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
9/27
&o%!inti'/ihi*_height2H2lineAeight/N22" image_hi*=0*etPixel!i+N+79gb!+=@@+""/
lineAeight'hi*_height4hbJi.max/ &o%!intN'hi*_height2H/N>hi*_height2H2lineAeight/N22" image_hi*0*etPixel!i+N+79gb!++=@@""/ 5 QLabel4label_in'newQLabel!"/ label_in2>*etPixmap!QPixmap::&%om6mage!image""/ label_in2>*how!"/
QLabel4label_outH'newQLabel!"/ label_outH2>*etPixmap!QPixmap::&%om6mage!image_hi*H""/ ..label_out2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!""/
label_outH2>*how!"/ QLabel4label_out='newQLabel!"/ label_out=2>*etPixmap!QPixmap::&%om6mage!image_hi*=""/ ..label_out2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!""/ label_out=2>*how!"/ QLabel4label_out'newQLabel!"/ label_out2>*etPixmap!QPixmap::&%om6mage!image_hi*""/ ..label_out2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!""/ label_out2>*how!"/
}
!"i h$ %& ch'c ()
voidMainWindow::on_bntanhmau_tcd_cliced!" Q6mageimage!ui2>txtchonanh_tcd2>text!""/ tochucdoanhmau!image+H="/
}
12+ nh 6) b(n (nh 3%)
voidMainWindow::on_bnt_anhamban_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh ..3aoanhet7uac8ichthuocbanganhdauvao Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/
&o%!intx'/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
10/27
Q9gbcolo%_out'79gb!out+out+out"/..thanhphangiongnhau*ecomauxam ..anmauchopixel!x+1"t%enanhet7ua image_out0*etPixel!x+1+colo%_out"/ 5 ..Aienthianhgoc QLabel4label_in'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/ ..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*how!"/
}
1*+ nh 6) b(n (nh )-u
voidMainWindow::on_bnt_anhamban_anhmau_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ &o%!intx'/xpiamapvagancholabel label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/
..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*how!"/
}
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
11/27
BUI *
1. X l bunton Chn
2. voidMainWindow::on_bntchon_cliced!"3. 4. Q$t%ing&name'QFileDialog::get(penFile)ame!"/5. i&!&name0i*-mpt1!""
6. %etu%n/7. ui2>txtchonanh2>*et3ext!&name"/
8. }
2+ B!n "#! tun tnh (nh 3%)
voidMainWindow::on_bnt_ax_bdtt_cliced!" Q6mageimg_in!ui2>txtchonanh2>text!""/ Q6mageimg_out!img_in0width!"+img_in0height!"+Q6mage::Fo%mat_9;"/ intmin'=@@/ intmax'/ &o%!intx'/xmax"max'g%a1/ i&!g%a1
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
12/27
intg%a1' 7%a1!%gb"/ intcolo%_out'!=@@4!g%a12min"".!max2min"/ img_in0*etPixel!x+1+79gb!g%a1+g%a1+g%a1""/ img_out0*etPixel!x+1+79gb!colo%_out+colo%_out+colo%_out""/ 5 QLabel4label_H'newQLabel!"/ label_H2>*etPixmap!QPixmap::&%om6mage!img_in""/ label_H2>*etWindow3itle!,anhgoc,"/ label_H2>*how!"/ QLabel4label_='newQLabel!"/ label_=2>*etPixmap!QPixmap::&%om6mage!img_out""/ label_=2>*etWindow3itle!,anhgoc,"/ label_=2>*how!"/ ..Q$t%ing&n'QFileDialog::get$aveFile)ame!"/ ..img_out0*ave!&n"/ tochucdo!img_out+H=I"/
5
*+ B!n "#! tun tnh (nh )-u
voidMainWindow::on_bnt_xm_bdtt_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/ Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/
intmax_%ed'/ intmin_%ed'=@@/ intmax_g%een'/ intmin_g%een'=@@/ intmax_blue'/ intmin_blue'=@@/ &o%!inti'/imax_%ed"max_%ed'colo%0%ed!"/ i&!colo%0%ed!"max_blue"max_blue'colo%0blue!"/ i&!colo%0blue!"
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
13/27
QLabel4label_out'newQLabel!"/ label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/
..label_out2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,;inh Ohung,"/
label_out2>*how!"/ tochucdoanhmau!image_out+H=I"/
}
.+ CJn t# >h?> "K (nh 3%)
voidMainWindow::on_bnt_ax_cbtcd_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/ Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ &loathJ=@K/ &o%!inti'/i
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
14/27
label_out2>*how!"/ tochucdo!image_out+H=I"/
}
4+ CJn t# >h?> "@ (nh )-u
voidMainWindow::on_bnt_am_cbtcd_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/ Q6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ &loath%J=@K+hgJ=@K+hbJ=@K/ &o%!inti'/i*how!"/
QLabel4label_out'newQLabel!"/ label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ ..label_out2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,et7ua,"/ label_out2>*how!"/ tochucdoanhmau!image_out+H=I"/5
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
15/27
5+ A> T;un& BLnh
voidMainWindow::on_bnt_loct%ingbinh_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/ intma%gin'H/ intcell'/ Q6mageimage_out!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/ QColo%colo%/ int*um9+*um+*um;/ &o%!intx'ma%gin/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
16/27
hJ'g%a1/ ??/ 5 7$o%t!h+h?cell"/ intm'/ image_out0*etPixel!x+1+79gb!hJm+hJm+hJm""/5 QLabel4label_in'newQLabel!"/ label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*etWindow3itle!,anhgoc,"/ label_in2>*how!"/
QLabel4label_out'newQLabel!"/ label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,et7ua,"/ label_out2>*how!"/ tochucdo!image_out+H=I"/5
9. A> MEF!n (nh )-u
10. voidMainWindow::on_bnt_locmedian_am_cliced!"11. 12. Q6mageimage_in!ui2>txtchonanh2>text!""/13. intma%gin'H/14. intcell'/15. inth9J+hJ+h;J/16. Q6mageimage_out!image_in0width!"2ma%gin+17. image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/18.
19. QColo%colo%/20. &o%!intx'ma%gin/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
17/27
45. label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/46. label_out2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2
>text!""0&ile)ame!"?,et7ua,"/47. label_out2>*how!"/48. tochucdoanhmau!image_in+H=I"/49. tochucdoanhmau!image_out+H=I"/50. 5
BUI .
1. X l button Chn
=0 voidMainWindow::on_bntchon_cliced!"0 0 Q$t%ing&name'QFileDialog::get(penFile)ame!"/@0 i&!&name0i*-mpt1!""K0 %etu%n/I0 ui2>txtchonanh2>*et3ext!&name"/0 5
2+ G;F!Ent (nh 3%)
voidMainWindow::on_bnt_g%adient_cliced!"Q6mageimage_in!ui2>txtchonanh2>text!""/Q6mageimage_out_x!image_in0width!"2H+image_in0height!"+Q6mage::Fo%mat_9;="/Q6mageimage_out_1!image_in0width!"+image_in0height!"2H+Q6mage::Fo%mat_9;="/QColo%colo%/ ..locduongbiendoc &o%!inti'/i
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
18/27
Q9gbcolo%H'image_in0pixel!i+N"/ intg%a1H'7%a1!colo%H"/ ..Q9gbcolo%_in'79gb!g%a1H+g%a1H+g%a1H"/ image_in0*etPixel!i+N+colo%H"/ Q9gbcolo%='image_in0pixel!i?H+N"/ intg%a1='7%a1!colo%="/ intnewg%a1'ab*!g%a1=2g%a1H"/ image_out_x0*etPixel!i+N+79gb!newg%a1+newg%a1+newg%a1""/ 5 5 &o%!inti'/i
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
19/27
intnewg%a1H'ab*!colo%=0%ed!"2colo%H0%ed!""/ intnewg%a1='ab*!colo%=0g%een!"2colo%H0g%een!""/ intnewg%a1'ab*!colo%=0blue!"2colo%H0blue!""/ image_out_x0*etPixel!i+N+79gb!newg%a1H+newg%a1=+newg%a1""/ 5 5 &o%!inti'/i%>h 1
voidMainWindow::on_bnt_%obe%t*_cliced!"Q6mageimage_in!ui2>txtchonanh2>text!""/Qimageimage_out_x!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/Q6mageimage_out_1!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/
..locduongbiendoc &o%!inti'/i
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
20/27
5 &o%!inti'/i%>h 2
voidMainWindow::on_bnt_%obe%t*_=_cliced!"Q6mageimage_in!ui2>txtchonanh2>text!""/Q6mageimage_out_E!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/
Q6mageimage_out_R!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/ intma*$iSe'=/ intma%gin'ma*$iSe.=/ intma*HJ=J=/ intma*=J=J=/ ma*HJJ'H/ma*HJHJ'/ ma*HJJH'/ma*HJHJH'2H/ ma*=JJ'/ma*=JHJ'H/ ma*=JJH'2H/ma*=JHJH'/
&o%!intx'ma%gin/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
21/27
5 QLabel4label_in'newQLabel!"/ label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ ..label_in2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!""/ label_in2>*how!"/
QLabel4label_out_E'newQLabel!"/ label_out_E2>*etPixmap!QPixmap::&%om6mage!image_out_E""/ ..label_out_E2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!"?,E,"/ label_out_E2>*how!"/
QLabel4label_out_R'newQLabel!"/ label_out_R2>*etPixmap!QPixmap::&%om6mage!image_out_R""/ ..label_out_R2>*etWindow3itle!QFile6n&o!ui2>line-dit2>text!""0&ile)ame!"?,R,"/ label_out_R2>*how!"/
5
5+ obE;t$ (nh )-u
voidMainWindow::on_bnt_%obe%t*_mau_cliced!"
Q6mageimage_in!ui2>txtchonanh2>text!""/Q6mageimage_out_x!image_in0width!"2H+image_in0height!"+Q6mage::Fo%mat_9;="/Q6mageimage_out_1!image_in0width!"+image_in0height!"2H+Q6mage::Fo%mat_9;="/ ..locduongbiendoc
&o%!inti'/i
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
22/27
5 QLabel4label_in'newQLabel!"/ label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/ QLabel4label_x'newQLabel!"/ label_x2>*etPixmap!QPixmap::&%om6mage!image_out_x""/ label_x2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,anhgx,"/ label_x2>*how!"/ QLabel4label_1'newQLabel!"/ label_12>*etPixmap!QPixmap::&%om6mage!image_out_1""/ label_12>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,anhg1,"/ label_12>*how!"/5
8+ OobEl (nh 3%)
voidMainWindow::on_bnt_*obel_mau_cliced!" Q6mageimage_in!ui2>txtchonanh2>text!""/ intma%gin'H/
intmangJ'2H+2=+2H++++H+=+H5/ intmangHJ'2H++H+2=++=+2H++H5/Q6mageimage_out!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/Q6mageimage_outH!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/ int*um+*umH/ Q9gbcolo%/ &o%!intx'ma%gin/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
23/27
5
9OobEl (nh )-u
voidMainWindow::on_bnt_*obel_cliced!"
Q6mageimage_in!ui2>txtchonanh2>text!""/ intma%gin'H/ intmangJ'2H+2=+2H++++H+=+H5/ intmangHJ'2H++H+2=++=+2H++H5/Q6mageimage_out!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/Q6mageimage_outH!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/ int*um9+*um+*um;+*um9H+*umH+*um;H/ QColo%colo%/ QColo%colo%H/ &o%!intx'ma%gin/x*etPixmap!QPixmap::&%om6mage!image_outH""/ label=2>*how!"/
QLabel4labelH'newQLabel!"/ labelH2>*etPixmap!QPixmap::&%om6mage!image_in""/ labelH2>*how!"/
QLabel4label'newQLabel!"/ label2>*etPixmap!QPixmap::&%om6mage!image_out""/ label2>*how!"/
5
9. T>h >hQ (nh 3%)
H0 voidMainWindow::on_bnt_tichchap_cliced!"HH0
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
24/27
H=0 Q6mageimage_in!ui2>txtchonanh2>text!""/H0 intma%gin'H/
Q6mageimage_out_E!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/Q6mageimage_out_R!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/
H0H@0 &loatJ/HK0HI0 J'ui2>line-dit_H2>text!"0toFloat!"/H0 JH'ui2>line-dit_=2>text!"0toFloat!"/H0 J='ui2>line-dit_2>text!"0toFloat!"/=0 J'ui2>line-dit_2>text!"0toFloat!"/=H0 J'ui2>line-dit_@2>text!"0toFloat!"/==0 J@'ui2>line-dit_K2>text!"0toFloat!"/=0 JK'ui2>line-dit_I2>text!"0toFloat!"/=0 JI'ui2>line-dit_2>text!"0toFloat!"/=@0 J'ui2>line-dit_2>text!"0toFloat!"/=K0 &o%!intx'ma%gin/x*etPixmap!QPixmap::&%om6mage!image_in""/0 label_in2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2
>text!""0&ile)ame!""/0 label_in2>*how!"/@0K0 QLabel4label_out_E'newQLabel!"/I0 label_out_E2>*etPixmap!QPixmap::&%om6mage!image_out_E""/0 label_out_E2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2
>text!""0&ile)ame!"?,E,"/0 label_out_E2>*how!"/@0
@H0 QLabel4label_out_R'newQLabel!"/@=0 label_out_R2>*etPixmap!QPixmap::&%om6mage!image_out_R""/@0 label_out_R2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2
>text!""0&ile)ame!"?,R,"/@0 label_out_R2>*how!"/@@0 5
1=+ T>h >hQ (nh )-u
voidMainWindow::on_bnt_tichchap_mau_cliced!"
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
25/27
Q6mageimage_in!ui2>txtchonanh2>text!""/ intma%gin'H/Q6mageimage_out_E!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/Q6mageimage_out_R!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/ &loatmangJ/ mangJ'ui2>line-dit_H2>text!"0toFloat!"/ mangJH'ui2>line-dit_=2>text!"0toFloat!"/ mangJ='ui2>line-dit_2>text!"0toFloat!"/ mangJ'ui2>line-dit_2>text!"0toFloat!"/ mangJ'ui2>line-dit_@2>text!"0toFloat!"/ mangJ@'ui2>line-dit_K2>text!"0toFloat!"/ mangJK'ui2>line-dit_I2>text!"0toFloat!"/ mangJI'ui2>line-dit_2>text!"0toFloat!"/ mangJ'ui2>line-dit_2>text!"0toFloat!"/..intcell*'/..Q6mageimage_out!image_in0width!"2ma%gin+image_in0height!"2ma%gin+Q6mage::Fo%mat_9;="/
int*um9H+*umH+*um;H+*um9=+*um=+*um;=/QColo%colo%/
&o%!intx'ma%gin/x
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
26/27
QLabel4label_out_R'newQLabel!"/label_out_R2>*etPixmap!QPixmap::&%om6mage!image_out_R""/label_out_R2>*etWindow3itle!QFile6n&o!ui2>txtchonanh2>text!""0&ile)ame!"?,R,"/ label_out_R2>*how!"/
5
11+ H!Rn thS (nh "(o n&0>
voidMainWindow::on_bntanhdaonguoc_cliced!"Q6mageimage_in!ui2>txtchonanh2>text!""/..docanhtu&ileanh ..3aoanhet7uac8ichthuocbanganhdauvaoQ6mageimage_out!image_in0width!"+image_in0height!"+Q6mage::Fo%mat_9;="/intc'ui2>txtmucxam2>text!"0to6nt!"/..biendoichuoithanh*o &o%!intx'/xpiamapvagancholabel label_in2>*etPixmap!QPixmap::&%om6mage!image_in""/ label_in2>*how!"/ ..hienthianhxul1 QLabel4label_out'newQLabel!"/ ..Doiimage2>piamapvagancholabel label_out2>*etPixmap!QPixmap::&%om6mage!image_out""/ label_out2>*how!"/ ..QPixmappixmap!4label_out2>pixmap!""/
..QMat%ix%m/ ..%m0%otate!2H"/..gocTUmVanh7ua1 ..pixmap'pixmap0t%an*&o%med!%m"/ ..label_out2>*etPixmap!pixmap"/
}
12+ OE (nh
Q$t%ing&n'QFileDialog::get$aveFile)ame!"/
-
8/10/2019 code Thi Thuc Hanh Xu Ly Anh Qt creator
27/27
i$g*ou%+save,n.