#Grip 9기# 일기_1121 - [안드로이드] 피부톤 측정

JH·2022년 12월 5일
0

인턴

목록 보기
19/25
post-thumbnail

피부톤 측정

String [][] color={
            {"F6F6F6","F9F9F9","FBFBFB","FEFEFE","FFFFFF",
                    "FDEBC8", "FDF5D2", "FDF5DC", "FDF5E6",
                    "FAE6B9", "FAEBC3", "FAEBCD", "FAEBD7",
                    "FFE0C6", "FFE5CB", "FFEAD0", "FFEFD5","F0E8D8",
                    "FFD9E4",  "FFDEE9",  "FFE3EE",
                    "FFE6EB",  "FFEBF0",  "FFF0F5",
                    "FFDFDC",  "FFE4E1", "FFDCDC",  "FFE6E6",  "FFF0F0","FFFFE0","FFF8DC","FFFACD",
                    "FFFFF0","FAEB78","FAF082","FAF58C","FAFA96","FAFAA0",
                    "FAFAD2","FFFF8C","FAFAB4","FFEB5A","FFF064","FFF56E","FAFAAA","FAFABE","FFFA78","FFFA82","FFFF8C","FFFF96","FFF978","FAE1AF","FFA98F"
                    ,"FFB399","FFBDA3","FFC7AD","FFD1B7","FFA374","FFAD7E","FFB788","FFC192","FFCB9C","FFC8C8","FFD2D2","FAB2B2","FAB7B7","FABCBC","FAC1C1",  "FAC6C6","F5A0A0"
                    ,"F5AAAA","FAB4B4","FABEBE","FAC8C8","F09696","F4A0A0","F4AAAA","F4B4B4","FEBEBE","FF6464","FF6E6E","FF7878","FF8282","FF8C8C","EB6464"
            },
            {"FBE4D2","FBE7D2","FBEBD2","FBEED2","FBF1D2","FBF5D2","FBF8D2",
                    "FDDCAA", "FDE1B4",
                    "FAD79B", "FADCA5",
                    "FFD0A1", "FFD5A6", "FFDAAB", "FFDFB0", "FFE4B5",
                    "FFB6C1", "FFD0CD", "FFD5D2", "FFDAD7","D8A8A8","FFBB8C", "FFC091", "FFC596", "FFCA9B",
                    "E8B8B8","D8A8A0","C88888","E09898","D89898","FF9696",
                    "FFAAAF",  "FFB4B9","FFEBCD","FFDC3C","FFE146","FFE650","FAC87D","FACD87","FAD291","FDCD8C","FDD296","FDD7A0","FDDCAA","FDE1B4","FDE6BE",
                    "FFC81E", "FFD228","FFD732","FFB400","FFBE0A","FFC314","FFCD28","FFD232","FFD73C","FFDC46","FFE150","FFE65A","FFDBC1","FFC6A5","FFD0AF",
                    "FFD0AF","FFD5B4","FFDAB9","FFA0A0","FFAAAA","FFB4B4","FFBEBE","F08080","F08A8A","F09494","F59E9E","FAA8A8","F56E6E","F57878","F58282","F58C8C","F59696"
                    ,"F06464","F06E6E","F07878","F08282","F08C8C"
            },
            {"EAB179","EABA79","EAC479","EACD79","EAD679","EAE079","EAE979",
                    "FF9473", "FF9E7D", "FFA887", "FFB291", "FFBC9B",
                    "FF7F50", "FF895A", "FF9364", "FF9D6E", "FFA778",
                    "FF9E9B", "FFA8A5","D88888",
                    "FFB182", "FFBB82", "FFA782",
                    "E19B50", "E6A55A", "EBAA5F", "EBAF64", "F0B469",
                    "FF7A85", "FF848F", "FF8E99","D0C0C0","D8C8C8","E1B771","E6C17B","EBC680","F0CB85","F5D08A"},
            {"D76F06","D78006","D79206","D7A306","D7B406","D7C606","D7D706",
                    "E0904C", "E59551", "EA9A56", "EF9F5B", "F4A460",
                    "FF5675", "FF607F", "FF6A89",
                    "CD853F", "CD8F49", "D29953", "D7A35D", "DCAD67",
                    "C2722E", "CC7C38", "D68642",
                    "D2691E", "D27328", "D77D32", "D7873C", "DC9146",
                    "FF88A7","B8A888","C8B088",
                    "D2691E","B0A080","B8B0A0","C0B8A8", "AE5E1A", "B86824","B8A078","A8A088", "D25A1E","D27D32","A05C37","A06641","A5704B","AA7A55","B4845F","B98E69","C39873"},
            {"965A30","966230","966B30","967330","967C30","968430","968D30",
                    "8B5927", "8B6331", "906D3B",
                    "957745", "9F814F", "A48654", "A98B59", "AE905E","A8A090",
                    "8B6331", "906D3B","583028","A0A098",
                    "9A7745", "A4814F", "AE8B59", "B89563", "C29F6D","989890","A0522D","887070","908870"},
            {"6E2107","6E2A07","6E3207","6E3B07","6E4407","6E4C07","6E5507",
                    "8B4513", "8B3113", "8B3B13", "5E2F0D", "753A10", "8B4F1D","909080","605848","800000"}
    };

다음과 같이 피부톤과 관련된 컬러를 미리 선언을 해둔 후

 public void extract_tone(Bitmap myBitmap){
        Palette.from(myBitmap).generate(new Palette.PaletteAsyncListener(){
            @Override
            public void onGenerated(@Nullable Palette palette) {

                Palette.Swatch swatch_01=palette.getLightVibrantSwatch();
                // 오류 발생: 색상 코드 안에 있는 것이 아닌 피부색은 전에 추출한 피부색코드가 뜸
                if(swatch_01!=null) {
                    String candi_01 = String.format("%06X", (0xFFFFFF & swatch_01.getRgb()));
                    for(int i=0;i<color.length;i++) {
                        for (int j = 0; j < color[i].length; j++) {
                            if (color[i][j].equals(candi_01))
                            {
                                result4=i;
                                break;
                            }
                        }
                    }
                }
                else
                {
                    Palette.Swatch swatch_02=palette.getDominantSwatch();
                    String candi_02=String.format("%06X", (0xFFFFFF&swatch_02.getRgb()));

                    for(int i=0;i<color.length;i++) {
                        for (int j = 0; j < color[i].length; j++) {

                            if (color[i][j].equals(candi_02)) {
                                result4 = i;
                                break;
                            }
                        }
                    }

                }
            }
        });
    }

사진의 평균 색상을 추출하여 적용한다.

0개의 댓글