日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开发一个App来为你的女神“化妆”!

發(fā)布時間:2024/3/13 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发一个App来为你的女神“化妆”! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


/? ?今日科技快訊? ?/


8月19日,三星電子公司發(fā)布財報顯示,今年上半年,該公司銷售額達(dá)到75.2萬億韓元(約合620億美元),其中86%來自海外。韓國是亞洲第四大經(jīng)濟(jì)體(前三名是中國、日本、印度),同期出口總額為313.4萬億韓元(約合2596億美元),其中海外收入占20.6%。


/? ?作者簡介? ?/


本篇文章來自北斗星_And的投稿,分享了如何利用Android來給圖片美顏,相信會對大家有所幫助!同時也感謝作者貢獻(xiàn)的精彩文章。


北斗星_And的博客地址:

https://juejin.im/user/5d2ef4f7f265da1bb47d9a07


/? ?背景? ?/


最近刷抖音,看到一些大漢變“女神”,這化妝可以稱之為逆襲啊,大漢變蘿莉。作為技術(shù),大部分是男生,并且經(jīng)常有男生被女票懟我的口紅有多少色號,那是一樣的紅色嗎?為了廣大男同胞能好好的“活在”女票跟前,今天來講述一下化妝,用代碼擼一個好看的女票。


/? ?開始? ?/


先上效果在說吧,學(xué)習(xí)抖音的化妝教程方式,就畫一半,方便形成對比,效果如下:



如果正在看篇文章的人是個妹子,你應(yīng)該很清楚畫了些什么吧?為了照顧廣大爺們,先講一下畫了些什么吧。直接看代碼吧:


public?enum?Region?{

????FOUNDATION("粉底"),
????BLUSH("腮紅"),
????LIP("唇彩"),
????BROW("眉毛"),

????EYE_LASH("睫毛"),
????EYE_CONTACT("美瞳"),
????EYE_DOUBLE("雙眼皮"),
????EYE_LINE("眼線"),
????EYE_SHADOW("眼影");

????private?String?name;
????Region(String?name)?{
????????this.name?=?name;
????}
}


女程序員們,你們看出這么多來了嗎?其實(shí)我也是挺佩服我自己的,一個男生知道那么多,嚇壞了我很多小伙伴,宅男的世界你們不懂。代碼已經(jīng)托管到github,如果你喜歡,請給一個star,謝謝!

https://github.com/DingProg/Makeup


/? ?磨皮? ?/


磨刀不誤砍柴工,我們知道,一般的痘痘用粉底是蓋不住的,那么先來一次磨皮吧,把"底板"搞干凈了,我們使用一個高通濾波器(去掉低頻信號,來達(dá)到保留細(xì)節(jié)的效果)+Curve Adjustment某些頻率應(yīng)用調(diào)整,然后在融合來達(dá)到磨皮的目的。流程大概是這樣的。



效果如下:



本文就沒有在擼一個這樣的庫,直接使用了github開源的磨皮庫。使用HighPassSkinSmoothing,地址如下:

https://github.com/msoftware/HighPassSkinSmoothing-Android


但是我這里為了形成對比,所以只取了左邊的臉。


?Bitmap?leftAndRightBitmap?=?Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),?Bitmap.Config.ARGB_8888);
?Canvas?canvas?=?new?Canvas(leftAndRightBitmap);
?//+3,為了彌補(bǔ)?int值相除精讀損失,讓左邊多一些
Rect?left?=?new?Rect(0,0,bitmap.getWidth()/2?+?3,bitmap.getHeight());
Rect?right?=?new?Rect(bitmap.getWidth()?-?bitmap.getWidth()/2?,0,bitmap.getWidth(),bitmap.getHeight());
??canvas.drawBitmap(result,left,left,null);
canvas.drawBitmap(bitmap,right,right,null);


/? ?人臉關(guān)鍵點(diǎn)檢測? ?/


往人臉上化妝,拿整張照片的磨皮肯定不行啊,我們需要精準(zhǔn)的人臉,那就需要人臉識別技術(shù),開源的庫也有一些,但是精度有待加強(qiáng),所以本文選用了商用的人臉關(guān)鍵點(diǎn)檢測技術(shù),大概看了一下,有這么幾家人臉識別技術(shù)做的還可以。


  • 商湯

  • Face++

  • 百度

  • 虹軟


他們的技術(shù),人臉精度,使用價格,在此不做評論。本文選用了Face++的稠密關(guān)鍵點(diǎn)檢測。為了方便去見,沒有下載其SDK,使用了網(wǎng)頁版本的關(guān)鍵點(diǎn)檢測,可以上傳本地照片,然后把數(shù)據(jù)拿下來。



右側(cè)有關(guān)鍵點(diǎn)的json,可以直接復(fù)制下來,供后續(xù)使用。


{
??"time_used":?140,
??"request_id":?"1565152700,b5efc234-055c-4109-8899-e7bd0b9d1d63",
??"face":?{
????"landmark":?{
??????"left_eye":?{
????????"left_eye_43":?{
??????????"y":?170,
??????????"x":?140
????????},
????????"left_eye_42":?{
??????????"y":?170,
??????????"x":?141
????????},
????????"left_eye_41":?{
??????????"y":?170,
??????????"x":?142
????????},
????????"left_eye_40":?{
??????????"y":?170,
??????????"x":?143
????????},
????????"left_eye_47":?{
??????????"y":?170,
??????????"x":?136
????????},
????????"left_eye_46":?{
??????????"y":?170,
??????????"x":?137
????????}
???????}
?????}
???}
}


如果商用建議購買其SDK。有了這些點(diǎn),我們就可以接下來“畫”妝了。


/? ?粉底? ?/


有了磨皮,但是不夠白啊,上述的庫里其實(shí)包含了美白,它是對整個圖片進(jìn)行處理,疊加白色濾波,但效果很差,肯定不是我們想要的。但是有了人臉檢測的點(diǎn),那我們就好辦了,涂一層粉底吧。(女生還要先涂水啊,乳啊什么,照片上不了水了....)



看Face++的文檔我們可以知道json里面的關(guān)鍵點(diǎn)為face_contour_left_和face_hairline_為臉的區(qū)域。直接拿出左邊臉的區(qū)域。


?public?static?Path?landmark(String?faceJson){
????????JSONObject?jsonObject?=?null;
????????try?{
????????????jsonObject?=?new?JSONObject(faceJson);
????????????JSONObject?eye?=?jsonObject.getJSONObject("face").getJSONObject("landmark").getJSONObject("face");

????????????Path?path?=?new?Path();
????????????Point?start?=?getPointByJson(eye.getJSONObject("face_contour_left_0"));
????????????path.moveTo(start.x,start.y);
????????????for(int?i=?1;i<?64;i++){
????????????????Point?point?=?getPointByJson(eye.getJSONObject("face_contour_left_"+i));
????????????????path.lineTo(point.x,point.y);
????????????}

????????????for(int?i=?144;i>=?72;i--){
????????????????Point?point?=?getPointByJson(eye.getJSONObject("face_hairline_"+i));
????????????????path.lineTo(point.x,point.y);
????????????}
????????????path.close();
????????????return??path;

????????}?catch?(JSONException?e)?{
????????????e.printStackTrace();
????????}
????????return?null;

????}


有了左邊區(qū)域,只需要一個畫筆就可以畫上去(原圖就可以是畫板 new Canvas(originBitmap)),那我們正常直接涂一層白色,肯定不行,會嚇壞小伙伴的,那白色加透明可以嗎?那我們試試吧!


Canvas?canvas?=?new?Canvas(originBitmap);
?Paint?paint?=?new?Paint();
?paint.setColor(Color.WHITE);
?paint.setAlpha(50);
?paint.setStyle(Paint.Style.FILL);
?canvas.drawPath(facePath,paint);


效果如下所示:



感覺挺假的,我們知道,畫筆是可以設(shè)置成高斯模糊的,那就來試試吧。


?private?static?Bitmap?createMask(final?Path?path,?int?color,?@Nullable?PointF?position,?int?alpha,?int?blur_radius)?{
????????if?(path?==?null?||?path.isEmpty())
????????????return?null;

????????RectF?bounds?=?new?RectF();
????????path.computeBounds(bounds,?true);

????????int?width?=?(int)?bounds.width();
????????int?height?=?(int)?bounds.height();
????????Bitmap?bitmap?=?Bitmap.createBitmap(width,?height,?Bitmap.Config.ARGB_8888);??//?mutable
????????Canvas?canvas?=?new?Canvas(bitmap);
????????Paint?paint?=?new?Paint(Paint.ANTI_ALIAS_FLAG);
????????paint.setMaskFilter(new?BlurMaskFilter(blur_radius,?BlurMaskFilter.Blur.NORMAL));
????????paint.setColor(color);
????????paint.setAlpha(alpha);
????????paint.setStyle(Paint.Style.FILL);
????????path.offset(-bounds.left,?-bounds.top);
????????canvas.drawPath(path,?paint);
????????if?(position?!=?null)?{
????????????position.x?=?bounds.left;
????????????position.y?=?bounds.top;
????????}
????????return?bitmap;
????}


事實(shí)證明這樣是可以的,但是效果還是不咋行,那我們在用原圖來做一次漸變,剛好可以達(dá)到效果。


??private?static?Bitmap?getGradientBitmapByXferomd(Bitmap?originBitmap,?float?radius){
????????if(radius?<?10)?radius?=?10;
????????Bitmap?canvasBitmap?=?Bitmap.createBitmap(originBitmap.getWidth(),originBitmap.getHeight(),?Bitmap.Config.ARGB_8888);
????????Canvas?canvas?=?new?Canvas(canvasBitmap);
????????Paint?paint?=?new?Paint();

????????BitmapShader?bitmapShader?=?new?BitmapShader(originBitmap,?Shader.TileMode.CLAMP,?Shader.TileMode.CLAMP);
????????RadialGradient?radialGradient?=?new?RadialGradient(originBitmap.getWidth()?/?2,?originBitmap.getHeight()?/?2,
????????????????radius,?Color.BLACK,?Color.TRANSPARENT,?Shader.TileMode.CLAMP);
????????paint.setShader(new?ComposeShader(bitmapShader,radialGradient,new?PorterDuffXfermode(PorterDuff.Mode.DST_IN)));
????????canvas.drawRect(new?Rect(0,0,canvasBitmap.getWidth(),canvasBitmap.getHeight()),?paint);
????????return?canvasBitmap;
????}



/? ?口紅? ?/


關(guān)于口紅也只是僅僅畫上一層顏色,有了畫筆,就可以和粉底一樣的實(shí)現(xiàn)方式。



先看一下怎么連接的區(qū)域吧,為了方便,我直接采用了把外面的區(qū)域連接起來,然后在去做一次diff就可以了,代碼如下:


public?static?Path?getMouthPath(String?faceJson){
????????try?{
????????????JSONObject?jsonObject?=?new?JSONObject(faceJson);
????????????JSONObject?mouthJson?=?jsonObject.getJSONObject("face").getJSONObject("landmark").getJSONObject("mouth");

?????????????Path?outPath?=?new?Path();
?????????????Path?inPath?=?new?Path();

????????????Point?start?=?getPointByJson(mouthJson.getJSONObject("upper_lip_0"));
????????????outPath.moveTo(start.x,start.y);
?????????????for(int?i?=?1;i?<?18;i++){
?????????????????Point?pointByJson?=?getPointByJson(mouthJson.getJSONObject("upper_lip_"?+?i));
?????????????????outPath.lineTo(pointByJson.x,pointByJson.y);
?????????????}

????????????for(int?i?=?16;i?>?0;i--){
????????????????Point?pointByJson?=?getPointByJson(mouthJson.getJSONObject("lower_lip_"?+?i));
????????????????outPath.lineTo(pointByJson.x,pointByJson.y);
????????????}
????????????outPath.close();


????????????Point?inStart?=?getPointByJson(mouthJson.getJSONObject("upper_lip_32"));
????????????inPath.moveTo(inStart.x,inStart.y);

????????????for(int?i?=?46;i?<?64;i++){
????????????????Point?pointByJson?=?getPointByJson(mouthJson.getJSONObject("upper_lip_"?+?i));
????????????????inPath.lineTo(pointByJson.x,pointByJson.y);
????????????}

????????????for(int?i?=?63;i?>=?46;i--){
????????????????Point?pointByJson?=?getPointByJson(mouthJson.getJSONObject("lower_lip_"?+?i));
????????????????inPath.lineTo(pointByJson.x,pointByJson.y);
????????????}

????????????//取不同的地方
????????????outPath.op(inPath,?Path.Op.DIFFERENCE);
????????????return??outPath;
????????}?catch?(JSONException?e)?{
????????????e.printStackTrace();
????????}
????????return?null;
????}


Path.op()方法需要在API 19及以上才可以使用,如果使用了低版本的api,可以直接使用canvas.clipPath()。


/? ?腮紅? ?/


只有粉底,那看上去,還是有點(diǎn)假,那是不是需要用畫筆畫上一個腮紅呢?但是形狀什么,不好搞定,所以選擇了直接使用腮紅素材,直接貼上去。



實(shí)現(xiàn)也相對容易一些。


?public?static?void?drawBlush(Canvas?canvas,?Bitmap?faceBlush,?Path?path,?int?alpha)?{
????????Paint?paint?=?new?Paint();
????????paint.setAlpha(alpha);
????????RectF?rectF?=?new?RectF();
????????path.computeBounds(rectF,true);
????????canvas.drawBitmap(faceBlush,null,rectF,paint);

????}


/? ?眉毛? ?/


眉毛這個其實(shí)困擾了我很長時間,因?yàn)橐训撞康拿济o扣了,在裝新的眉毛在上面,不然可能完全蓋不住,眉形變化,識別準(zhǔn)確率,會導(dǎo)致效果的直接變化。嘗試了很多方法其中OpenCV里有一個著名的inpaint方法的圖片修復(fù)方法,看別人寫的去書印demo,也都還行,但是放到這里去眉毛,效果很差,是因?yàn)槲沂褂貌粚?#xff0c;還是什么問題,有大神可以指點(diǎn),提取周邊的皮膚顏色去掉原來的眉毛。



最終還是放棄了去掉原來的眉毛,直接覆蓋眉毛。



?public?static?Path?getLeftEyeBrow(String?faceJson){
????????try?{
????????????JSONObject?jsonObject?=?new?JSONObject(faceJson);
????????????JSONObject?eye?=?jsonObject.getJSONObject("face").getJSONObject("landmark").getJSONObject("left_eyebrow");

????????????Path?path?=?new?Path();
????????????Point?start?=?getPointByJson(eye.getJSONObject("left_eyebrow_0"));
????????????path.moveTo(start.x,start.y);
????????????for(int?i=?1;i<?64;i++){
????????????????Point?point?=?getPointByJson(eye.getJSONObject("left_eyebrow_"+i));
????????????????path.lineTo(point.x,point.y);
????????????}
????????????path.close();
????????????return??path;
????????}catch?(Exception?e){
????????????e.printStackTrace();
????????}
????????return?null;
????}

?????public?static?void?draw(Canvas?canvas,?Bitmap?eyeBrowRes,?Path?path,?int?alpha){
????????Paint?paint?=?new?Paint();
????????paint.setAlpha(alpha);

????????RectF?rectF?=?new?RectF();
????????path.computeBounds(rectF,true);

????????canvas.drawBitmap(eyeBrowRes,new?Rect(0,0,eyeBrowRes.getWidth(),eyeBrowRes.getHeight()?-?30),rectF,paint);
????}


最終效果如下所示:



但是文中的開始給的效果那張照片,因?yàn)樽R別偏差,導(dǎo)致效果不太好。


/? ?眼睛? ?/


眼睛(睫毛,眼影,雙眼皮,眼線,美瞳),眼睛部分是最復(fù)雜的部分了,因?yàn)榭梢援嫷膶?shí)在是太多了。這就將兩個地方的實(shí)現(xiàn),其他具體實(shí)現(xiàn)可以參考實(shí)際代碼,先看一下這些不是主要的素材吧。



/? ?美瞳? ?/


要向眼睛里畫美瞳,那么我們首先要有這個區(qū)域,區(qū)域人臉關(guān)鍵點(diǎn)已經(jīng)給了,那么,我們知道,人的眼睛一般是橢圓性的,不可能直接是圓形的,所以畫的時候,需要和眼睛的區(qū)域做一個交集來得到結(jié)果。



??public?static?void?drawContact(Canvas?canvas,?Bitmap?contactBitmap,?Path?eyePath,?Point?centerPoint,?int?eyeRadius,?int?alpha)?{
????????Path?contactPath?=?new?Path();
????????contactPath.addCircle(centerPoint.x,centerPoint.y,eyeRadius,?Path.Direction.CCW);
????????//重點(diǎn)地方,做交集得到結(jié)果
????????contactPath.op(eyePath,?Path.Op.INTERSECT);

????????RectF?bounds?=?new?RectF();
????????contactPath.computeBounds(bounds,true);
????????bounds.offset(1,0);
????????Paint?paint?=?new?Paint();
????????paint.setAlpha(alpha);
????????canvas.drawBitmap(contactBitmap,new?Rect(0,30,contactBitmap.getWidth(),contactBitmap.getHeight()?-?60),bounds,paint);
????}


/? ?睫毛? ?/



我們知道,睫毛有上睫毛和下睫毛,那么怎么把這個眉毛畫上去呢?其實(shí)我們知道,一般把圖片繪制到目標(biāo)區(qū)域需要經(jīng)過,平移,旋轉(zhuǎn),縮放來進(jìn)行。睫毛我們選取了素材上的三個點(diǎn),和眼睛上的三個點(diǎn)來做上述的三個操作。



有了這三個點(diǎn),我們就可以計算寬高比,角度,使用三角函數(shù)可以很容易計算得到。


/? ?旋轉(zhuǎn)角度? ?/


使用人眼睛上對應(yīng)的三個點(diǎn)來計算旋轉(zhuǎn)角度,(如果人的頭像是正的,可以不用計算,但是人可能偏頭,什么,需要計算旋轉(zhuǎn)角度,來warp)。


?/**
?????*?@param?p1?三角形頂點(diǎn)
?????*?@param?p2?三角形頂點(diǎn)
?????*?@param?p3?三角形頂點(diǎn)
?????*?@return?三角形頂點(diǎn)p3?到?p1,p3垂直高度
?????*/
????public?double?getTriangleHeight(Point?p1,?Point?p2,?Point?p3)?{
????????int?a?=?p1.x;
????????int?b?=?p1.y;
????????int?c?=?p2.x;
????????int?d?=?p2.y;
????????int?e?=?p3.x;
????????int?f?=?p3.y;
????????//計算三角形面積
????????double?S?=?(a?*?d?+?b?*?e?+?c?*?f?-?a?*?f?-?b?*?c?-?d?*?e)?/?2;
????????int?lengthSquare?=?(p1.x?-?p2.x)?*?(p1.x?-?p2.x)?+?(p1.y?-?p2.y)?*?(p1.y?-?p2.y);
????????return?Math.abs(2?*?S?/?Math.sqrt(lengthSquare));
????}

?????//獲取坐標(biāo)軸內(nèi)兩個點(diǎn)間的距離
????public?double?getLength(Point?p1,?Point?p2)?{
????????double?diff_x?=?Math.abs(p1.x?-?p2.x);
????????double?diff_y?=?Math.abs(p1.y?-?p2.y);
????????//兩個點(diǎn)在?橫縱坐標(biāo)的差值與兩點(diǎn)間的直線?構(gòu)成直角三角形。length_pow等于該距離的平方
????????double?length_pow?=?Math.pow(diff_x,?2)?+?Math.pow(diff_y,?2);
????????double?sqrt?=?Math.sqrt(length_pow);
????????return?sqrt?==?0?0.001f:(float)?sqrt;
????}

????static?double?pi180?=?180?/?Math.PI;
????public?double?getAngle(Point?p1,?Point?p2,?Point?p3)?{
????????double?_cos1?=?getCos(p1,?p2,?p3);//第一個點(diǎn)為頂點(diǎn)的角的角度的余弦值
????????return?90?-?Math.acos(_cos1)?*?pi180;
????}


/? ?寬高比旋轉(zhuǎn)角度? ?/


有了角度,那么我們在計算寬高比。


?/**
?????*?@param?targetP1?縮放目標(biāo)線段點(diǎn)p1
?????*?@param?targetP2?縮放目標(biāo)線段點(diǎn)p2
?????*?@param?P1???????待縮放線段點(diǎn)p1
?????*?@param?P2???????待縮放線段點(diǎn)p2
?????*?@return?水平高度比值
?????*/
????public?double?computeScaleX(Point?targetP1,?Point?targetP2,?Point?P1,?Point?P2)?{
????????int?targetLengthSquare?=?(targetP1.x?-?targetP2.x)?*?(targetP1.x?-?targetP2.x)?+?(targetP1.y?-?targetP2.y)?*?(targetP1.y?-?targetP2.y);
????????int?sourceLengthSquare?=?(P1.x?-?P2.x)?*?(P1.x?-?P2.x)?+?(P1.y?-?P2.y)?*?(P1.y?-?P2.y);
????????double?scale?=?targetLengthSquare?*?1.0?/?sourceLengthSquare;
????????return?Math.sqrt(scale);
????}

????/**
?????*?@param?targetP1?縮放目標(biāo)三角形頂點(diǎn)
?????*?@param?targetP2?縮放目標(biāo)三角形頂點(diǎn)
?????*?@param?targetP3?縮放目標(biāo)三角形頂點(diǎn)
?????*?@param?P1???????待縮放三角形頂點(diǎn)
?????*?@param?P2???????待縮放三角形頂點(diǎn)
?????*?@param?P3???????待縮放三角形頂點(diǎn)
?????*?@return?垂直高度比值
?????*/

????public?double?computeScaleY(Point?targetP1,?Point?targetP2,?Point?targetP3,?Point?P1,?Point?P2,?Point?P3)?{
????????double?targetHeight?=?getTriangleHeight(targetP1,?targetP2,?targetP3);
????????double?sourceHeight?=?getTriangleHeight(P1,?P2,?P3);
????????return?targetHeight?/?sourceHeight;
????}


/? ?平移? ?/


因?yàn)槲覀兊膱D形是巨型,不可能從開始位置往上畫,那就需要把畫的位置通過平移,來達(dá)到第一個點(diǎn)的位置和對應(yīng)位置的點(diǎn),對應(yīng)上。


?eyeAngleAndScaleCalc.topP1.x?-?(int)?(bean.topP1.x?*?eyeAngleAndScaleCalc.topScaleX),
????????????????eyeAngleAndScaleCalc.topP1.y?-?(int)?(bean.topP1.y?*?eyeAngleAndScaleCalc.topScaleY)


有了這些步驟,那既可以直接合成繪制了,代碼如下:


?public?static?void?drawLash(Context?context,?Canvas?canvas,?EyeAngleAndScaleCalc.Bean?bean,?List<Point>?pointList,?int?alpha,?boolean?needMirror)?{
????????EyeAngleAndScaleCalc?eyeAngleAndScaleCalc?=?new?EyeAngleAndScaleCalc(pointList,bean);

????????Paint?paint?=?new?Paint();
????????paint.setAlpha(alpha);

????????Bitmap?resTopBitmap?=?BitmapUtils.getBitmapByAssetsName(context,bean.resTop);
????????Bitmap?scaledBitmapTop?=?Bitmap.createScaledBitmap(resTopBitmap,?(int)?(resTopBitmap.getWidth()?*?eyeAngleAndScaleCalc.topScaleX?+?0.5),
????????????????(int)?(resTopBitmap.getHeight()?*?eyeAngleAndScaleCalc.topScaleY?+?0.5),?true);
????????resTopBitmap.recycle();


????????Bitmap?resBottomBitmap?=?null;
????????Bitmap?scaledBitmapBottom?=?null;
????????if?(!TextUtils.isEmpty(bean.resBottom))?{
????????????resBottomBitmap?=?BitmapUtils.getBitmapByAssetsName(context,bean.resBottom);
????????????scaledBitmapBottom?=?Bitmap.createScaledBitmap(resBottomBitmap,?(int)?(resBottomBitmap.getWidth()?*?eyeAngleAndScaleCalc.bottomScaleX?+?0.5),
????????????????????(int)?(resBottomBitmap.getHeight()?*?eyeAngleAndScaleCalc.bottomScaleY?+?0.5),?true);
????????????resBottomBitmap.recycle();
????????}

????????if?(needMirror)?{
????????????Matrix?matrix?=?new?Matrix();
????????????matrix.postScale(-1,?1);???//鏡像水平翻轉(zhuǎn)
????????????scaledBitmapTop?=?Bitmap.createBitmap(scaledBitmapTop,?0,?0,?scaledBitmapTop.getWidth(),?scaledBitmapTop.getHeight(),?matrix,?true);
????????????if?(resBottomBitmap?!=?null)?{
????????????????scaledBitmapBottom?=?Bitmap.createBitmap(scaledBitmapBottom,?0,?0,?scaledBitmapBottom.getWidth(),?scaledBitmapBottom.getHeight(),?matrix,?true);
????????????}
????????}

????????canvas.save();
????????//canvas.rotate(eyeAngleAndScaleCalc.getTopEyeAngle(),?eyeAngleAndScaleCalc.topP1.x,?eyeAngleAndScaleCalc.topP1.y);
????????canvas.drawBitmap(scaledBitmapTop,
????????????????eyeAngleAndScaleCalc.topP1.x?-?(int)?(bean.topP1.x?*?eyeAngleAndScaleCalc.topScaleX),
????????????????eyeAngleAndScaleCalc.topP1.y?-?(int)?(bean.topP1.y?*?eyeAngleAndScaleCalc.topScaleY),?paint);
????????canvas.restore();

????????if?(scaledBitmapBottom?!=?null)?{
????????????canvas.save();
????????????canvas.rotate(eyeAngleAndScaleCalc.getBottomEyeAngle(),?eyeAngleAndScaleCalc.bottomP1.x,?eyeAngleAndScaleCalc.bottomP1.y);
????????????canvas.drawBitmap(scaledBitmapBottom,?eyeAngleAndScaleCalc.bottomP1.x,
????????????????????eyeAngleAndScaleCalc.bottomP1.y?-?(int)?(bean.bottomP1.y?*?eyeAngleAndScaleCalc.bottomScaleY),?paint);
????????????canvas.restore();
????????????scaledBitmapBottom.recycle();
????????}
????????scaledBitmapTop.recycle();
????}


眼睛部分,略微復(fù)雜一些,具體代碼可以查看 Github Makeup ,如果你覺得還可以,可以給一個star嗎?謝謝!


/? ?其他? ?/


我們知道,上述內(nèi)容只是對臉上進(jìn)行了一些化妝,那要成為真正的“美女”,可能還要打上問號?那什么樣的化妝才是真正的美女呢,一般是底子好的人。在加上化妝就更漂亮了,那一張照片,要變的底子好,一般有那些方式呢?這里提供一些思路(包含美體):


public?enum?BeautyType?{

????INPAINT(1,"祛斑"),
????SMALLFACE(2,"瘦臉"),
????LONGLEG(3,"大長腿增高"),
????EYE(4,"眼睛放大"),
????BREST(5,"豐胸"),
????WHITE(7,"美白"),
????MAKEUP(8,"美妝"),
????SMALLBODY(9,"瘦臉瘦身");

????private?int?type;
????private?String?name;

????BeautyType(int?type,?String?name)?{
????????this.type?=?type;
????????this.name?=?name;
????}

????public?int?getType()?{
????????return?type;
????}

????public?String?getName()?{
????????return?name;
????}
}


如果只針對臉部,那么就只需要,磨皮,美白,祛斑,大眼,瘦臉等功能了。


/? ?文末? ?/


今天的文章分享到這就結(jié)束了,這些算法,目前知網(wǎng)論文庫里都有,可以查看后輕松實(shí)現(xiàn)。


推薦閱讀:

看一看Facebook工程師是怎么評價《第一行代碼》的

全方位了解8.0系統(tǒng)下的Handler

給你的Android應(yīng)用穿件花衣服吧!


歡迎關(guān)注我的公眾號

學(xué)習(xí)技術(shù)或投稿



長按上圖,識別圖中二維碼即可關(guān)注


總結(jié)

以上是生活随笔為你收集整理的开发一个App来为你的女神“化妆”!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产精品1区2区3区 久久免费视频7 | 激情视频一区二区三区 | 国产欧美在线一区二区三区 | 91探花视频 | 欧美日韩午夜爽爽 | 亚洲精品国产精品国自产在线 | 欧美aaa级片| 成人国产精品久久久春色 | www.久久久com | 在线色吧 | 成人免费观看完整版电影 | 97碰在线 | 激情五月综合 | 丁香婷婷亚洲 | 久久免费电影 | 久久观看免费视频 | 黄网在线免费观看 | 久久精品网| 99精品国产一区二区三区不卡 | 天天干天天做 | 日日爱影视 | 人人玩人人添人人 | 国产高清在线免费 | 五月婷婷丁香 | 午夜精品影院 | 玖玖国产精品视频 | av中文字幕网 | 五月色婷 | 九九影视理伦片 | 久99久在线视频 | 亚洲天堂香蕉 | 久久免费资源 | 国产视频亚洲视频 | 午夜手机电影 | 久草色在线观看 | 韩日电影在线免费看 | 国产精品wwwwww| 狠狠色狠狠色合久久伊人 | 99中文视频在线 | 国产美女在线免费观看 | 六月色丁| 国产成人精品一区二区三区福利 | 91插插插免费视频 | 成人黄色免费观看 | 国产中文字幕在线视频 | 成人在线观看资源 | 激情网婷婷 | 九色激情网| 五月婷婷综合久久 | 久草精品资源 | 免费看污在线观看 | 婷婷成人亚洲综合国产xv88 | 久久理论电影网 | 手机在线看永久av片免费 | 亚洲黄色片在线 | 午夜精品av | 中文字幕色婷婷在线视频 | 日韩视频一二三区 | 视频 天天草 | 国产麻豆精品95视频 | 中文字幕之中文字幕 | 精品国产一区二区三区四区vr | 超薄丝袜一二三区 | 国产精品久久久久久久久软件 | 久久久精品 一区二区三区 国产99视频在线观看 | 欧美色噜噜噜 | 国产精品美女久久久久久2018 | 91精品在线视频观看 | 最近中文字幕免费大全 | 免费a级观看 | www.亚洲视频.com | 免费在线观看av不卡 | 午夜精品一区二区三区免费视频 | 一级黄色片在线免费观看 | 亚洲人天堂| 97视频在线播放 | 91少妇精拍在线播放 | 亚洲一级理论片 | www.色午夜.com | 久久久精品网 | 日韩av不卡在线观看 | 亚洲一区免费在线 | 色噜噜在线观看视频 | 成人蜜桃 | 久久国产亚洲 | 五月婷婷视频在线观看 | 黄色网免费| 天天色天天上天天操 | 探花视频在线观看 | 最新日韩在线观看 | 亚洲精品播放 | 久久成人精品电影 | 精品免费视频 | 久草免费在线观看视频 | 日本在线观看视频一区 | 午夜精品99久久免费 | 中国美女一级看片 | 欧美性色19p | 国产成人精品在线观看 | 天堂中文在线视频 | 中文字幕av免费 | 亚洲视频免费在线 | 激情综合中文娱乐网 | 欧美日韩一区二区三区在线免费观看 | 手机看片久久 | 久久综合婷婷国产二区高清 | 91电影福利| 国产色综合天天综合网 | 精品久久国产精品 | 国产一区精品在线 | av在线免费网站 | 免费视频在线观看网站 | 成人在线免费观看视视频 | 色狠狠一区二区 | 久久人人添人人爽添人人88v | 亚洲欧洲日韩在线观看 | 国产黄色精品在线 | 久久精品中文字幕一区二区三区 | 国产精品 9999 | 精品9999 | 久久99精品波多结衣一区 | 欧美男同视频网站 | 91色吧| 一二三区高清 | 色婷婷丁香| 国产精品一区二区三区在线免费观看 | 有码视频在线观看 | 91香蕉嫩草 | 99免费在线视频观看 | 99色免费视频 | 亚洲欧美国产精品18p | 久久久精品福利视频 | 日韩一区二区三免费高清在线观看 | 成人性生交大片免费观看网站 | 天天视频亚洲 | 91在线九色 | 人人爽人人射 | 国产一区二区免费在线观看 | 免费在线观看国产黄 | 久久久这里有精品 | 久久午夜鲁丝片 | 91成人免费在线视频 | 久久精品视频网站 | 乱子伦av| 国产91对白在线播 | 波多野结衣综合网 | 91精品视频免费在线观看 | 日韩欧美电影在线 | 成人91免费视频 | 81精品国产乱码久久久久久 | 深爱开心激情 | 国产一区免费视频 | 成人网中文字幕 | 久久99久久99免费视频 | 99视屏 | 色一级片 | av在线收看 | 婷婷在线看 | 51久久成人国产精品麻豆 | 欧美精品一二 | 探花视频在线观看 | 免费三级网| 午夜资源站 | av一级片网站 | 91中文字幕在线观看 | 另类老妇性bbwbbw高清 | 亚洲免费精品视频 | 色综合久久中文字幕综合网 | 黄色网大全 | 国产视频中文字幕在线观看 | 在线欧美中文字幕 | 国产精品精品 | 久久久久久久久久久久影院 | 少妇精品久久久一区二区免费 | 不卡精品 | 国产精品一区二区av | 91中文字幕网| 啪啪av在线 | 久久精品九色 | 国产精品99久久久久人中文网介绍 | 国产 中文 日韩 欧美 | 成年人免费电影在线观看 | 91九色网站| 婷婷视频在线观看 | 亚洲国产操 | 黄色毛片视频 | 亚洲欧美日本国产 | 日韩欧美综合在线视频 | 99riav1国产精品视频 | 91麻豆精品国产91久久久久久久久 | 久草在线手机视频 | 亚洲精品乱码久久久久久高潮 | 91手机在线看片 | 亚洲国产精品成人女人久久 | 日本久久成人中文字幕电影 | 黄色免费网站下载 | 福利视频一区二区 | 久久久久国产精品www | 色婷婷亚洲 | 国产精品毛片一区二区 | 成人毛片a | 国产一区二区精品 | 天天干天天碰 | 一区二区三区在线免费观看视频 | 国产美女久久 | 最近中文字幕免费av | 午夜久久福利影院 | av一级在线 | 日韩videos| 黄色三级av | 欧美va天堂va视频va在线 | 久久综合爱 | 国内99视频 | 欧美日韩后 | 国产精品99久久免费黑人 | 天堂在线一区 | 新av在线| 中文字幕在线观看一区二区 | 久久久精品成人 | 99 视频 高清 | 亚洲片在线观看 | 在线视频一区观看 | 91视频国产免费 | 久久精精品视频 | 久久99国产精品免费网站 | 日韩艹| 超碰激情在线 | 亚洲综合色视频在线观看 | 中文字幕888 | 国产精品美女久久 | 成人av在线直播 | 在线观看免费视频你懂的 | 2022中文字幕在线观看 | 中国一区二区视频 | 欧美色图88 | 福利视频网址 | 欧美成人区 | 伊人永久在线 | 色鬼综合网 | 精品久久久久_ | 狠狠色狠狠色合久久伊人 | 日操操| 国产一级视屏 | 99久国产| 久久国产露脸精品国产 | 欧美日韩啪啪 | 91中文字幕在线播放 | 国产在线精 | 97在线视频免费 | 亚洲欧美日韩国产一区二区三区 | 在线黄频 | 91精品视频免费观看 | 91视频 - 88av| 在线观看中文字幕第一页 | 亚洲一区免费在线 | 美女久久久久久久 | 96国产精品视频 | 91人人视频在线观看 | 超碰在线cao | 99在线精品视频观看 | 黄色片亚洲 | 九月婷婷综合网 | 亚洲国产欧美一区二区三区丁香婷 | 99精彩视频在线观看免费 | 9999毛片 | 国产一级视频免费看 | 91久久久国产精品 | 成人在线视频网 | 国产资源网站 | 欧美做受高潮 | 亚洲经典视频 | 欧美精品在线一区二区 | 国产精品免费看 | 久久久久久久久久福利 | 四虎永久免费在线观看 | 福利在线看片 | 中文字幕免费高清av | 欧美性做爰猛烈叫床潮 | 色婷婷啪啪免费在线电影观看 | 国产无遮挡又黄又爽在线观看 | 久久久www成人免费毛片 | 国产69精品久久久久久 | 狠狠色丁香婷婷综合欧美 | 九九精品视频在线观看 | 成人国产精品久久久久久亚洲 | 高清av免费看 | 一区二区三区日韩精品 | 视频二区在线 | 午夜视频免费播放 | 久草色在线观看 | 狠狠网| 黄色小网站在线 | 成人黄色在线视频 | 婷婷丁香激情网 | 国产一二三在线视频 | 欧美激情片在线观看 | avove黑丝| 久久99精品国产麻豆婷婷 | 黄色av免费 | 伊人日日干 | 综合久久久久久久久 | 午夜狠狠干 | 亚洲精品久久久久www | 激情视频在线观看网址 | 精品亚洲一区二区 | 久久九九久久 | 日韩免费福利 | 亚洲日韩欧美视频 | 97超视频免费观看 | 色是在线视频 | 日日日干 | 免费看的黄色小视频 | 91成人精品国产刺激国语对白 | 亚洲精品视频网址 | 日韩精品短视频 | 黄色网址中文字幕 | 国产黄色片久久 | 99久免费精品视频在线观看 | 欧美专区亚洲专区 | 国产视频在线一区二区 | 天天曰视频 | 国产福利中文字幕 | 五月天激情在线 | 久久视影 | 国产一级二级三级视频 | 久久综合色婷婷 | 96超碰在线| 欧美亚洲精品一区 | 久久精品视频观看 | 91丝袜美腿| 欧美日韩视频在线观看免费 | 久久99精品国产 | 亚洲精品美女久久久久网站 | 国内精品久久久久 | 国产一级视屏 | 手机看片中文字幕 | 亚洲欧洲成人 | 久草干| 九九有精品 | 色综合天天综合 | 天天操天天干天天爱 | 欧美一区在线观看视频 | 综合久色 | 超碰97国产精品人人cao | 黄色一及电影 | 高清在线一区 | 国产一级在线 | 午夜视频导航 | 国产高清免费在线观看 | 丁香在线观看完整电影视频 | 日日草av | 国产高清av免费在线观看 | 久久精品99国产精品酒店日本 | 黄在线免费看 | 亚洲不卡av一区二区三区 | 91一区二区三区久久久久国产乱 | av在线播放网址 | 国产视频一区二区在线播放 | 美女网站视频久久 | 精品国产诱惑 | 热re99久久精品国产99热 | 黄色a一级片 | 日韩a在线播放 | 一二三四精品 | 日韩理论| 99久久精品免费一区 | 国产小视频在线免费观看视频 | 3d黄动漫免费看 | 麻豆av一区二区三区在线观看 | 黄色视屏免费在线观看 | 97在线免费 | 日韩在线观看视频免费 | 中文字幕不卡在线88 | 免费黄色av | 射射射综合网 | 亚洲欧美视频一区二区三区 | 一区中文字幕在线观看 | 欧美在线日韩在线 | 国产精品mm| 69人人 | 色噜噜狠狠色综合中国 | 日本久久精品 | 韩国av电影在线观看 | av中文在线影视 | 丁香花五月 | 91欧美精品| 欧美在线1| 精品女同一区二区三区在线观看 | 91av视频网站 | 亚洲综合视频在线观看 | 亚洲aⅴ免费在线观看 | 亚洲一区网站 | 中文字幕在线字幕中文 | 久草香蕉在线视频 | 免费观看国产精品 | 成人免费在线视频观看 | 黄色成年| 午夜精品久久久久99热app | 97网在线观看 | 亚洲精品久久久久中文字幕二区 | 天天操夜操视频 | 日韩在线视频网址 | 韩国精品福利一区二区三区 | 久久免费毛片 | 久久精品91久久久久久再现 | 久久久五月婷婷 | 中文字幕av全部资源www中文字幕在线观看 | 在线91播放 | 91超级碰| 日本精品一区二区三区在线观看 | 久久精品久久综合 | 99久久精品日本一区二区免费 | 久免费视频 | 天天天综合网 | 黄色的片子 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产在线精品国自产拍影院 | 国内丰满少妇猛烈精品播 | 激情网站五月天 | 免费视频a | 免费色视频网站 | 91久久电影 | 夜夜操狠狠干 | 中文字幕在线专区 | 亚洲天堂网在线视频观看 | 成人在线观看av | 亚洲自拍av在线 | 亚洲国产中文在线观看 | 最近中文字幕mv免费高清在线 | av东方在线 | 精品国产诱惑 | 热久久这里只有精品 | 一区 在线 影院 | 玖草在线观看 | 国产黄色成人 | 国内精品二区 | 操操操日日日干干干 | 国产麻豆电影 | 97超在线视频 | 久久久久久久久久亚洲精品 | 久操久| 最新av在线免费观看 | 精品国产aⅴ麻豆 | 免费观看一级 | 日韩美视频 | 国产一级淫片免费看 | 波多野结衣久久资源 | 国产精品一区二区电影 | 久久福利综合 | 国产一区成人 | 日本一区二区三区视频在线播放 | 色窝资源 | 一级欧美黄 | 人人爽人人爱 | 亚洲精品午夜aaa久久久 | 精品一区在线看 | 91视频在线观看下载 | 狠狠干 狠狠操 | 欧美最爽乱淫视频播放 | 91精品国产自产在线观看 | 久久免费99 | av高清一区 | 91免费高清 | 免费一级日韩欧美性大片 | 国产视频不卡一区 | 欧美日韩裸体免费视频 | 国内久久精品 | 久久色中文字幕 | 黄色大片日本免费大片 | 五月激情姐姐 | 国产精品 欧美 日韩 | 日韩精品久久久久久久电影竹菊 | 91av国产视频 | 黄色成人av网址 | www.久久久精品 | 国产一二三区在线观看 | 日韩av中文在线观看 | 久久精品一区二区三 | 午夜久久网站 | 99热高清| 不卡精品 | 麻豆视频免费在线播放 | 一区二区三区国产欧美 | 日韩有码网站 | 国产资源网站 | 国产精品福利无圣光在线一区 | 婷婷色网 | 天天干天天射天天插 | 二区三区在线视频 | 亚洲国内精品视频 | 国产成人三级三级三级97 | 久久精品五月 | 亚洲精品videossex少妇 | 一级黄色大片 | 国产亚洲精品久久久久久 | 一级淫片a| 狠狠操狠狠干天天操 | 三级动态视频在线观看 | 亚洲高清免费在线 | 91丨九色丨首页 | 蜜桃久久久 | 久久免费一级片 | 国产精品区二区三区日本 | 日韩免费高清在线观看 | 日韩毛片在线一区二区毛片 | 亚洲国产影院 | 欧美 日韩 国产 成人 在线 | 国产91丝袜在线播放动漫 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 91九色在线播放 | 玖玖视频在线 | 国产一区二区三区四区在线 | 91中文字幕在线 | 国产午夜麻豆影院在线观看 | 成人avav| 美女啪啪图片 | 免费午夜av | 久久久精品影视 | 国产精品久久久久久久午夜 | av看片网址 | 久久99亚洲精品久久 | 国语自产偷拍精品视频偷 | 在线看片91| 久草在线观看资源 | 国产精品高潮呻吟久久av无 | 国际精品久久久久 | 中文字幕在线观看视频一区二区三区 | 少妇超碰在线 | 成人羞羞视频在线观看免费 | 久操中文字幕在线观看 | wwwwwww色| 免费高清在线观看电视网站 | 国产精品视频线看 | 麻豆免费视频网站 | 成人wwwxxx视频 | 波多野结衣电影久久 | 麻豆久久久久 | 2000xxx影视 | 亚在线播放中文视频 | 久艹视频免费观看 | 在线午夜av| 香蕉手机在线 | 久久99爱视频 | 中文字幕无吗 | 男女拍拍免费视频 | 免费涩涩网站 | 五月天丁香视频 | 成人一区二区在线 | 国产精品久久99精品毛片三a | 永久免费毛片 | 在线婷婷 | 久久免费视频在线观看6 | 日韩精品在线免费观看 | 97人人模人人爽人人少妇 | 一级黄毛片 | 国产精品女视频 | 国产一级电影网 | 国产成人黄色 | 日韩成人免费观看 | 在线免费视频你懂的 | 亚洲爱av| 五月婷婷在线观看 | 西西www4444大胆在线 | 国产精品一区二区三区在线免费观看 | 日韩在线视频看看 | 综合激情久久 | 中文字幕欧美日韩va免费视频 | 在线观看a视频 | 亚洲精品视频在 | 色a在线观看 | 激情综合网天天干 | 91精品爽啪蜜夜国产在线播放 | 国产亚洲精品免费 | 综合av在线 | 在线看成人 | 欧美日韩高清一区二区 国产亚洲免费看 | 日韩中文在线播放 | 日韩精品在线免费观看 | 永久免费毛片在线观看 | 久久久久久久久久久网站 | 一区二区三区四区五区在线视频 | 在线 欧美 日韩 | 日韩精品中文字幕在线 | 天天综合精品 | 亚洲国内精品在线 | 久久99日韩| 91精品国产92久久久久 | 最近更新好看的中文字幕 | 黄a在线看| 亚洲三级在线免费观看 | 亚洲天堂网在线观看视频 | 丁香色婷 | 日日夜夜免费精品 | 国产 字幕 制服 中文 在线 | 国产一级特黄电影 | 日韩免费电影一区二区 | 亚洲欧美日韩在线一区二区 | 久久久久久国产精品久久 | 黄色小说在线观看视频 | 欧美色图p | 九九综合久久 | 五月婷婷丁香在线观看 | av亚洲产国偷v产偷v自拍小说 | 亚洲黄色在线观看 | 午夜精品视频免费在线观看 | 国产无区一区二区三麻豆 | 国产精品久久久久久久久久不蜜月 | 国产精品区免费视频 | 天天爽天天爽天天爽 | 婷婷丁香综合 | 99久久久久国产精品免费 | 韩国av一区二区 | 伊人日日干| 久久精彩视频 | 久久国产精品二国产精品中国洋人 | 综合网天天 | 麻豆高清免费国产一区 | 免费在线视频一区二区 | 91精品国产成 | 欧美日韩一区二区视频在线观看 | av在线免费观看网站 | 99精品视频免费在线观看 | 国产成人一区在线 | 亚洲精品视频网站在线观看 | 久久久 精品 | 丁香六月婷婷激情 | 伊人国产在线播放 | 国产美女免费 | 91在线蜜桃臀 | 免费在线观看日韩欧美 | 国产精品18p| 美女黄频在线观看 | www.久久视频 | 久久精品人人做人人综合老师 | 亚洲精品视频免费在线观看 | 黄色毛片观看 | 六月久久婷婷 | 亚洲最新在线 | 亚洲一级电影 | av激情五月 | 亚洲精品视频免费看 | 免费看久久久 | 色.com| 九九热在线精品 | 婷婷日韩 | 成人国产精品一区二区 | 男女激情免费网站 | 福利av在线| 日韩激情视频在线观看 | 国产精品女同一区二区三区久久夜 | 日本99干网| 精品国产乱码一区二 | 国产亚洲综合精品 | 丁香激情五月 | 日韩在线三区 | 色搞搞 | 99视频在线精品免费观看2 | 日本中文字幕在线免费观看 | 超碰免费久久 | 91高清一区| 日日夜夜狠狠操 | 日韩在线精品视频 | 日韩欧美视频一区二区三区 | 久久精品牌麻豆国产大山 | 久草精品视频在线观看 | 麻豆91视频 | www在线免费观看 | 天天干天天干天天干 | 国产精品美女久久久久久久 | 国产精品综合av一区二区国产馆 | 天天操天天射天天舔 | 国产中文在线观看 | 九九久久在线看 | 97超碰在线久草超碰在线观看 | 精品亚洲视频在线 | 黄色激情网址 | 欧美少妇18p | 亚洲国产成人精品电影在线观看 | 在线观看免费高清视频大全追剧 | 一区二区三区日韩在线 | 国产综合久久 | 久久久久久网址 | 亚洲黄色一级大片 | www.夜夜操.com | 欧美日韩成人 | 亚洲无线视频 | av在线色| 亚洲国产精品免费 | 日韩中文字幕视频在线观看 | av大全在线播放 | 国产黄a三级三级三级三级三级 | 91视频在线观看大全 | 婷婷久久综合网 | 国产一区二区在线免费播放 | 456成人精品影院 | 国产福利在线不卡 | 黄色软件视频大全免费下载 | 国内精自线一二区永久 | www在线观看国产 | 五月婷婷丁香在线观看 | 麻豆国产精品一区二区三区 | 午夜久久 | 久草国产视频 | 国产精品久久久久久久久久尿 | 欧美精品亚洲二区 | 超碰在线中文字幕 | 日韩成人中文字幕 | 毛片美女网站 | 热久久免费视频 | 91视频免费观看 | 中文字幕精品视频 | 麻花豆传媒mv在线观看网站 | 激情伊人 | 国产日本高清 | 狠狠色香婷婷久久亚洲精品 | 久久 在线 | 国产麻豆精品95视频 | 日本公妇色中文字幕 | 久久久久看片 | 精品一区av| 96国产精品视频 | 精品麻豆入口免费 | 曰韩在线 | 97在线精品国自产拍中文 | 国产在线观看免费观看 | 丁香视频在线观看 | a黄色影院 | 人人爽人人澡人人添人人人人 | 国产精品麻豆99久久久久久 | 国产精品毛片一区视频播 | 九九国产精品视频 | 亚洲三级毛片 | 亚洲无人区小视频 | 欧美精品v国产精品 | 粉嫩av一区二区三区入口 | 中文在线免费视频 | 欧美最新大片在线看 | 激情大尺度视频 | 成年人免费电影在线观看 | 成人h动漫精品一区二 | 日韩在线观看小视频 | 激情综合电影网 | 久久久久久久毛片 | 亚洲资源网 | 一级欧美一级日韩 | 美女网站在线免费观看 | 日韩免费视频在线观看 | 国产男男gay做爰 | 国产手机在线视频 | 日本久久影视 | 久久国产精品99久久久久久老狼 | av电影一区二区三区 | 特级a老妇做爰全过程 | 亚洲女人av | 国产日韩欧美在线看 | 国产一区久久久 | 色婷婷视频网 | 五月婷在线观看 | 天天天天爽 | 亚洲成人xxx | 亚洲成人精品在线观看 | 亚洲国产剧情av | 国产大片免费久久 | 免费观看9x视频网站在线观看 | 中文字幕一区三区 | 亚洲国产精品小视频 | 久久久久久久久久久黄色 | 久久最新网址 | 国产黄av| 在线a视频免费观看 | 色香蕉在线视频 | 免费美女久久99 | 波多野结衣一区二区三区中文字幕 | 成全在线视频免费观看 | 二区三区精品 | 香蕉视频在线免费 | 日韩1页 | 日韩中文字幕在线观看 | 欧亚日韩精品一区二区在线 | 亚洲欧美一区二区三区孕妇写真 | 日本成址在线观看 | 亚洲精品视频久久 | 国产精品视频免费 | 成人禁用看黄a在线 | 波多野结衣在线观看视频 | 99re8这里有精品热视频免费 | 超碰97人人射妻 | 日韩精品视频免费专区在线播放 | 天天插天天操天天干 | a级国产乱理论片在线观看 伊人宗合网 | 亚洲精品国产精品乱码在线观看 | 狠狠综合久久 | 黄色av高清 | 日韩激情视频在线观看 | 精品国产久 | 在线免费观看视频一区二区三区 | 综合色伊人 | 欧美日bb | 婷婷网站天天婷婷网站 | 欧美大片www | 国产成人精品一区二区三区在线 | 国产网红在线观看 | 亚洲 欧美 变态 国产 另类 | 免费亚洲婷婷 | 九九热免费在线视频 | 狠狠久久| 日韩99热 | 欧美九九九 | 午夜10000| 人人爽久久涩噜噜噜网站 | 国产区精品在线观看 | 免费看高清毛片 | 免费黄色小网站 | 91黄色在线看 | 伊人伊成久久人综合网站 | 日韩欧美在线高清 | 97国产在线播放 | 成人免费一级片 | 欧美美女激情18p | 天天操天天操 | 亚洲永久精品一区 | 午夜精品久久久久久99热明星 | 亚洲国产精品传媒在线观看 | 91免费观看网站 | 狠狠色狠狠色终合网 | 国产精品毛片一区二区在线 | 黄色www| 免费看的视频 | 中文字幕免费高清 | 黄网站免费大全入口 | 亚洲手机av | 99这里有精品 | 国产精品毛片一区二区三区 | 免费人成在线观看 | 91传媒免费在线观看 | 黄网站色| 在线观看午夜av | 日韩网站免费观看 | 国产 一区二区三区 在线 | 一区 二区 精品 | 在线视频日韩一区 | 国产亚洲精品久久久网站好莱 | 国产精品美 | 欧美激情h| 91亚洲精品久久久中文字幕 | 综合亚洲视频 | 日韩一区二区三区不卡 | 国产成人精品久久久久蜜臀 | 91福利试看 | 国内外成人在线 | 丁香久久综合 | 日日干影院 | 欧美久久久久久久久中文字幕 | 97色综合 | 成片免费观看视频999 | 欧美一区二区三区在线看 | 精品国产伦一区二区三区观看方式 | 婷婷丁香综合 | 久久91久久久久麻豆精品 | 丁香婷婷深情五月亚洲 | 国产专区在线播放 | japanesexxxhd奶水 91在线精品一区二区 | 一区 在线 影院 | 天堂av在线免费观看 | 日日骑 | 久久福利国产 | 欧美一区二区三区免费看 | 2021国产精品 | 天天干夜夜 | 国产精品一区二区三区免费看 | 99热亚洲精品| 久久露脸国产精品 | 天天操操操操操操 | 久久www免费人成看片高清 | 欧美国产日韩一区二区三区 | 久久国产精品偷 | 江苏妇搡bbbb搡bbbb | 超碰在线人人97 | 91 在线视频播放 | 免费在线观看一级片 | 青青啪 | 国产亚洲视频系列 | 国语精品久久 | 99热国产在线观看 | 在线免费三级 | 国产91aaa| 国产成人精品亚洲a | 国产亚洲欧美一区 | 香蕉视频最新网址 | 亚洲精品视频第一页 | 亚洲美女精品区人人人人 | 中文字幕制服丝袜av久久 | 狠狠躁夜夜a产精品视频 | 久久久久久久久久久久电影 | 久久精品国产久精国产 | 国产免费观看视频 | 人人添人人澡人人澡人人人爽 | 久久无码av一区二区三区电影网 | 中文字幕日本在线观看 | 少妇视频在线播放 | 人人射人人插 | 91丨九色丨高潮丰满 | 国产精品久久久久久婷婷天堂 | 不卡日韩av | 91麻豆精品国产 | 91成人看片| 久久精品免费看 | 精品欧美日韩 | 精品国产aⅴ麻豆 | 日韩精品一区二区三区高清免费 | 成人91视频| 91av亚洲| av在线免费在线观看 | 国产精品久久久久久久午夜 | 97爱爱爱 | 日韩黄色影院 | 久草网在线观看 | 激情伊人五月天 | 精品国产伦一区二区三区观看方式 | 99精品一区二区 | 国产精品资源网 | 青草视频免费观看 | 久久综合免费视频 | 综合久久精品 | 免费在线黄色av | 激情开心 | 日本乱视频 | 丁香婷婷社区 | 丁香六月婷 | 伊人丁香 | 亚洲成人精品国产 | a黄色一级| 国产高清不卡 | 天天操操操操操操 | 中文字幕 国产 一区 | 日日夜夜狠狠操 | 中文字幕久久亚洲 | 天天色天天射天天综合网 | 免费观看性生活大片3 | 最近中文字幕国语免费高清6 | 国产精品观看在线亚洲人成网 | 亚洲无线视频 | av在线影片 | 91久久久国产精品 | 色五月情 | 天天干天天在线 | 国产精品都在这里 | 丁香婷婷久久久综合精品国产 | 97av免费视频 | 国产福利网站 | 激情网在线观看 | 99精品99| 伊人狠狠 | 日韩aa视频 | 中文字幕免费高清在线观看 | 欧美日韩裸体免费视频 | 超碰在线人 | 狠狠干.com | 国产精品久久久久久久久久直播 | 婷婷网五月天 | 黄色精品网站 | 色噜噜狠狠狠狠色综合久不 | 丁香六月婷婷开心 | 亚洲美女在线国产 | 久久综合九色欧美综合狠狠 | 天天操天天色天天 | 天天噜天天色 | 91最新视频| 婷婷六月天丁香 | 黄色av电影一级片 | 91成人免费观看视频 | 天天躁天天躁天天躁婷 | 欧美性高跟鞋xxxxhd | 91传媒免费在线观看 | 亚洲在线色| 狠狠夜夜 | 欧美激情xxxx性bbbb | 欧美一区二区三区免费看 | 婷婷综合国产 | 亚洲国产中文在线观看 | 91亚洲综合 | 日韩在线视频一区二区三区 | 日本高清dvd| 中文字幕a∨在线乱码免费看 | 国产在线观看污片 | 国产精品福利视频 | 国产精品免费久久久久影院仙踪林 | 在线观看国产麻豆 | 久久黄网站| 91视频-88av| 911在线| 欧美福利精品 | 黄色电影在线免费观看 | 最近免费中文视频 | 六月婷色| 国产黄色片久久久 | 欧美一区在线看 | 久久久久免费精品国产 |