{"id":6275,"date":"2026-10-04T00:20:21","date_gmt":"2026-10-04T00:20:21","guid":{"rendered":"https:\/\/kblack.vn\/?page_id=6275"},"modified":"2026-11-02T17:25:10","modified_gmt":"2026-11-02T10:25:10","slug":"anh-the-online","status":"publish","type":"page","link":"https:\/\/kblack.vn\/en\/anh-the-online\/","title":{"rendered":"Create an ID photo online for free"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6275\" class=\"elementor elementor-6275\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-31fe893 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"31fe893\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-456c2e0\" data-id=\"456c2e0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7ec9191 elementor-widget elementor-widget-html\" data-id=\"7ec9191\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--KBIDX-->\n<style>@media(max-width:900px){#kx[data-step=\"2\"] .kx-hero{display:none}}.kx-bigbtn>div{min-width:0}.kx-bigbtn small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}\nhtml.kbid-free,html.kbid-free body{height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important}\nhtml.kbid-free body{background:#07090f!important}\nhtml.kbid-free .elementor-widget-html>.elementor-widget-container>.top,html.kbid-free .elementor-widget-html>.elementor-widget-container>.wrap{display:none!important}\nhtml:not(.kbid-free) #kx{display:none}\n@media (max-width:760px){html:not(.kbid-free),html:not(.kbid-free) body{height:auto!important;overflow-y:auto!important;overflow-x:hidden!important}html:not(.kbid-free) .elementor-widget-html .wrap{flex-direction:column!important;height:auto!important}html:not(.kbid-free) .elementor-widget-html .wrap>.setup{width:100%!important;max-width:none!important;height:auto!important;flex:none!important;overflow:visible!important}html:not(.kbid-free) .elementor-widget-html .wrap>.show{width:100%!important;min-height:70vh;flex:none!important;padding-bottom:70px}}\n#kxBack{display:none;position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:9999;padding:11px 18px;border-radius:999px;border:1px solid rgba(122,215,255,.4);background:#0e1530;color:#fff;font:700 13px Montserrat,system-ui,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.5);cursor:pointer}\nhtml:not(.kbid-free) #kxBack{display:block}\n#kx{--bg:#07090f;--p:#0f1424;--p2:#151b30;--p3:#1b2340;--ln:rgba(255,255,255,.09);--t:#eef2ff;--t2:rgba(226,233,255,.72);--t3:rgba(226,233,255,.48);--c:#4f8bff;--c2:#7ad7ff;--g:#f5c451;--ok:#2fd27a;--bad:#ff6b6b;color:var(--t);font-family:Montserrat,'Be Vietnam Pro',system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;background:radial-gradient(900px 520px at 75% -10%,rgba(58,107,255,.20),transparent 60%),var(--bg);padding-bottom:40px}\n#kx *{box-sizing:border-box}\n#kx button,#kx input,#kx select{font-family:inherit}\n#kx a{color:inherit}\n.kx-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:10px 18px;background:rgba(7,9,15,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--ln)}\n.kx-brand{display:flex;align-items:center;gap:8px;text-decoration:none!important;color:#fff!important;flex:none}\n.kx-brand b{font-weight:900;letter-spacing:.05em;font-size:15px}.kx-brand i{font-style:normal;font-size:11px;color:var(--c2);font-weight:700;letter-spacing:.12em;text-transform:uppercase}\n.kx-steps{display:flex;gap:6px;margin:0 auto;padding:4px;border-radius:999px;background:var(--p);border:1px solid var(--ln)}\n.kx-steps button{border:0;background:none;color:var(--t3);font-size:12px;font-weight:700;padding:7px 12px;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap}\n.kx-steps button em{font-style:normal;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font-size:10.5px}\n.kx-steps button.on{background:linear-gradient(135deg,#4f8bff,#1E3FA0);color:#fff}.kx-steps button.on em{background:rgba(255,255,255,.25)}\n.kx-steps button.done{color:var(--t2)}.kx-steps button.done em{background:var(--ok);color:#03130a}\n.kx-steps button:disabled{cursor:default}\n.kx-tr{flex:none;display:flex;gap:8px}\n.kx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;border-radius:13px;border:1px solid var(--ln);background:var(--p2);color:#fff;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none!important;transition:.15s;white-space:nowrap}\n.kx-btn:hover{border-color:rgba(122,215,255,.45)}\n.kx-btn.pri{background:linear-gradient(135deg,#4f8bff,#1E3FA0);border:0}\n.kx-btn.gold{background:var(--g);color:#151000!important;border:0}\n.kx-btn.sm{height:36px;padding:0 12px;font-size:12.5px;border-radius:11px}\n.kx-btn.big{height:56px;font-size:15.5px;border-radius:16px}\n.kx-btn:disabled{opacity:.45;cursor:not-allowed}\n.kx-hero{max-width:1160px;margin:0 auto;padding:26px 18px 4px}\n.kx-hero h1{margin:0 0 8px;font-size:clamp(26px,3.6vw,40px);line-height:1.12;font-weight:900;letter-spacing:-.01em;color:#fff}\n.kx-hero p{margin:0;color:var(--t2);font-size:14.5px;line-height:1.6;max-width:760px}\n.kx-hero ul{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:12px 0 0;padding:0;font-size:12.5px;color:var(--t2)}\n.kx-hero li:before{content:\"\u2713 \";color:var(--ok);font-weight:800}\n.kx-main{max-width:1160px;margin:0 auto;padding:18px}\n.kx-pane{display:none;animation:kxIn .35s ease}.kx-pane.on{display:block}\n@keyframes kxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n.kx-card{background:var(--p);border:1px solid var(--ln);border-radius:20px;padding:18px}\n.kx-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 12px}\n.kx-h h2{margin:0;font-size:19px;font-weight:800;color:#fff}.kx-h span{font-size:12.5px;color:var(--t3)}\n\/* step 1 *\/\n.kx-search{position:relative;margin-bottom:12px}\n.kx-search input{width:100%;height:52px;border-radius:15px;border:1px solid var(--ln);background:var(--p2);color:#fff;font-size:16px;padding:0 16px 0 46px;outline:none}\n.kx-search input:focus{border-color:var(--c)}\n.kx-search svg{position:absolute;left:16px;top:16px;width:20px;height:20px;stroke:var(--t3);fill:none;stroke-width:2}\n.kx-pop{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}.kx-pop::-webkit-scrollbar{display:none}\n.kx-pop button{flex:none;height:36px;padding:0 13px;border-radius:999px;border:1px solid rgba(122,215,255,.3);background:rgba(79,139,255,.08);color:#dbe6ff;font-size:13px;font-weight:600;cursor:pointer}\n.kx-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}\n.kx-doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--p2);border:1px solid var(--ln);cursor:pointer;text-align:left;color:#fff;transition:.15s;width:100%}\n.kx-doc:hover{border-color:rgba(122,215,255,.5);transform:translateY(-1px)}\n.kx-doc.on{border-color:var(--c);background:linear-gradient(135deg,rgba(79,139,255,.22),rgba(21,27,48,1))}\n.kx-doc .fl{font-size:26px;line-height:1;flex:none;width:34px;text-align:center}\n.kx-doc .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}\n.kx-doc b{font-size:14.5px;font-weight:700}.kx-doc small{font-size:12px;color:var(--t3)}\n.kx-doc .sz{flex:none;font-size:11.5px;font-weight:800;color:var(--c2);padding:4px 8px;border-radius:8px;background:rgba(122,215,255,.1)}\n.kx-empty{padding:30px;text-align:center;color:var(--t3);font-size:14px}\n\/* step 2 *\/\n.kx-sel{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--p2);border:1px solid var(--ln);margin-bottom:14px}\n.kx-sel .fl{font-size:26px}.kx-sel .tx{flex:1;min-width:0}.kx-sel b{display:block;font-size:14.5px}.kx-sel small{font-size:12px;color:var(--t3)}\n.kx-src{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.kx-bigbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;border-radius:20px;border:1.5px dashed rgba(122,215,255,.35);background:rgba(79,139,255,.06);color:#fff;cursor:pointer;text-align:center;padding:16px;transition:.15s}\n.kx-bigbtn:hover,.kx-bigbtn.over{background:rgba(79,139,255,.14);border-color:var(--c2)}\n.kx-bigbtn.cam{border-style:solid;background:linear-gradient(160deg,rgba(79,139,255,.3),rgba(30,63,160,.15))}\n.kx-bigbtn .ic{font-size:30px;line-height:1}.kx-bigbtn b{font-size:15.5px}.kx-bigbtn small{font-size:12px;color:var(--t2);line-height:1.45}.kx-bigbtn div{display:flex;flex-direction:column;gap:5px}\n.kx-tips{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}\n.kx-tip{padding:12px;border-radius:14px;background:var(--p2);border:1px solid var(--ln);font-size:12.5px;line-height:1.45;color:var(--t2)}\n.kx-tip b{display:block;color:#fff;font-size:13px;margin-bottom:3px}\n.kx-priv{margin-top:12px;font-size:12px;color:var(--t3);display:flex;gap:8px;align-items:center}\n\/* camera *\/\n.kx-cam{position:fixed;inset:0;z-index:99990;background:#000;display:none;flex-direction:column}\n.kx-cam.on{display:flex}\n.kx-cam .vw{position:relative;flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center}\n.kx-cam video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}\n.kx-cam canvas.ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}\n.kx-cam .msg{position:absolute;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);padding:10px 16px;border-radius:999px;background:rgba(10,14,30,.78);backdrop-filter:blur(8px);font-size:14.5px;font-weight:700;white-space:nowrap;border:1px solid rgba(255,255,255,.15);max-width:92vw;overflow:hidden;text-overflow:ellipsis}\n.kx-cam .msg.ok{background:rgba(20,120,70,.85);border-color:rgba(47,210,122,.6)}\n.kx-cam .cd{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:110px;font-weight:900;color:#fff;text-shadow:0 6px 30px rgba(0,0,0,.6);display:none}\n.kx-cam .bar{display:flex;align-items:center;justify-content:space-around;gap:10px;padding:16px 18px calc(18px + env(safe-area-inset-bottom));background:#05070d}\n.kx-cam .shut{width:74px;height:74px;border-radius:50%;border:4px solid #fff;background:rgba(255,255,255,.15);cursor:pointer;position:relative}\n.kx-cam .shut:after{content:\"\";position:absolute;inset:6px;border-radius:50%;background:#fff}\n.kx-cam .cb{width:52px;height:52px;border-radius:16px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:20px;cursor:pointer}\n.kx-cam .auto{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:#cfd8ef;cursor:pointer}\n.kx-cam .auto i{width:44px;height:26px;border-radius:999px;background:#333a50;position:relative;transition:.2s}\n.kx-cam .auto i:after{content:\"\";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}\n.kx-cam .auto.on i{background:var(--ok)}.kx-cam .auto.on i:after{left:21px}\n.kx-cam .flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;transition:opacity .25s}\n\/* step 3 \u2013 editor *\/\n.kx-ed{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto minmax(0,1fr);gap:0;height:calc(100vh \/ var(--kz,1) - 150px);min-height:560px;max-height:900px;border-radius:22px;overflow:hidden;border:1px solid var(--ln);background:#0a0d18}\n.kx-edtop{grid-column:1\/-1;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--ln);background:var(--p)}\n.kx-edtop .ib{width:40px;height:40px;border-radius:12px;border:1px solid var(--ln);background:var(--p2);color:#fff;font-size:20px;cursor:pointer;flex:none;padding:0;line-height:1}\n.kx-edtop .t{flex:1;min-width:0;display:flex;flex-direction:column}\n.kx-edtop .t b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kx-edtop .t small{font-size:11.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.kx-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:22px;min-height:0;background:repeating-conic-gradient(#0d1120 0 25%,#0a0d18 0 50%) 0 0\/22px 22px;overflow:hidden}\n.kx-frame{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 24px 60px rgba(0,0,0,.6);background:#fff;cursor:grab;flex:none}\n.kx-frame:active{cursor:grabbing}\n.kx-frame canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}\n.kx-frame canvas.bf{opacity:0;transition:opacity .15s}.kx-frame.orig canvas.bf{opacity:1}\n.kx-frame canvas.gd{pointer-events:none}\n.kx-frame .lb{position:absolute;left:8px;top:8px;padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.6);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.06em;opacity:0;transition:.15s}.kx-frame.orig .lb{opacity:1}\n.kx-fl{position:absolute;left:12px;right:12px;bottom:12px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;pointer-events:none}\n.kx-fl>*{pointer-events:auto}\n.kx-chip{height:36px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(10,14,28,.82);backdrop-filter:blur(8px);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;-webkit-user-select:none;user-select:none;touch-action:none}\n.kx-chip.on{background:#1f3f9e;border-color:#4f8bff}\n.kx-badge{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 4px;border-radius:999px;background:rgba(10,14,28,.85);border:1px solid rgba(255,255,255,.14);font-size:12.5px;font-weight:800;cursor:pointer;color:#fff}\n.kx-up{display:inline-block;margin-top:8px;padding:8px 12px;border-radius:10px;background:rgba(245,196,81,.12);border:1px solid rgba(245,196,81,.35);color:#f5c451;font-size:13px;font-weight:700;text-decoration:none;line-height:1.35}.kx-up:hover{background:rgba(245,196,81,.2)}\n.kx-badge i{font-style:normal;width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:#04150b;font-size:12px}\n.kx-badge.w i{background:var(--g);color:#1a1300}.kx-badge.x i{background:var(--bad);color:#fff}\n.kx-side{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--ln);background:var(--p)}\n.kx-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--ln);flex:none}\n.kx-tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border:0;border-radius:12px;background:none;color:var(--t3);font-size:11px;font-weight:700;cursor:pointer}\n.kx-tabs button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}\n.kx-tabs button.on{background:rgba(79,139,255,.16);color:#fff}\n.kx-panes{flex:1;min-height:0;overflow:auto;padding:16px;overscroll-behavior:contain}\n.kx-tp{display:none}.kx-tp.on{display:block;animation:kxIn .25s ease}\n.kx-score{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--p2);border:1px solid var(--ln);margin-bottom:10px}\n.kx-score .ring{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;background:conic-gradient(var(--ok) var(--v),rgba(255,255,255,.08) 0)}\n.kx-score .ring span{width:42px;height:42px;border-radius:50%;background:var(--p2);display:flex;align-items:center;justify-content:center}\n.kx-score b{display:block;font-size:14.5px}.kx-score small{font-size:12px;color:var(--t2)}\n.kx-chk{list-style:none;margin:0;padding:0;display:grid;gap:6px}\n.kx-chk li{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.4;padding:8px 10px;border-radius:11px;background:rgba(47,210,122,.07);border:1px solid rgba(47,210,122,.18);color:#d9f7e7}\n.kx-chk li:before{content:\"\u2713\";font-weight:900;color:var(--ok)}\n.kx-chk li.w{background:rgba(245,196,81,.08);border-color:rgba(245,196,81,.25);color:#fbe9bd}.kx-chk li.w:before{content:\"!\";color:var(--g)}\n.kx-chk li.x{background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.3);color:#ffd6d6}.kx-chk li.x:before{content:\"\u2715\";color:var(--bad)} .kx-chk li small.kx-fix{display:block;margin-top:3px;font-size:11.5px;font-weight:500;color:var(--t2);opacity:.9} .kx-i{display:inline-block;vertical-align:-3px;flex:none} .kx-bigbtn .ic .kx-i{vertical-align:middle}\n.kx-lbl{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c2);margin:4px 0 10px;font-weight:800}\n.kx-bgs{display:grid;grid-template-columns:repeat(4,64px);gap:12px}\n.kx-bgs button,.kx-bgs label{aspect-ratio:1;width:100%;border-radius:16px;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);position:relative;padding:0}\n.kx-bgs button span{position:absolute;left:0;right:0;bottom:-18px;font-size:10.5px;color:var(--t3);text-align:center;white-space:nowrap}\n.kx-bgs{row-gap:26px;margin-bottom:22px}\n.kx-bgs button.on{border-color:var(--c2);box-shadow:0 0 0 3px rgba(122,215,255,.3)}\n.kx-bgs label{border:1px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:20px;box-shadow:none}\n.kx-bgs label input{position:absolute;inset:0;opacity:0;cursor:pointer}\n.kx-hint{font-size:12px;color:var(--t3);line-height:1.5;margin:8px 0 0}\n.kx-sw{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--t2);padding:11px 0;border-bottom:1px solid var(--ln);cursor:pointer}\n.kx-sw input{width:40px;height:22px;accent-color:#4f8bff;flex:none}\n.kx-sl{display:grid;grid-template-columns:86px 1fr 32px;align-items:center;gap:10px;margin:12px 0;font-size:12.5px;color:var(--t2)}\n.kx-sl input{width:100%;accent-color:#4f8bff;height:28px}.kx-sl output{text-align:right;color:#fff;font-weight:700;font-size:12px}\n.kx-nud{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 4px}\n.kx-nud button{height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--p2);color:#fff;font-size:12px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}\n.kx-nud button em{font-style:normal;font-size:16px}\n.kx-dl{display:grid;gap:8px;margin-bottom:14px}\n.kx-dl .kx-btn{width:100%}\n.kx-cta{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;background:linear-gradient(135deg,rgba(245,196,81,.16),rgba(15,20,36,1));border:1px solid rgba(245,196,81,.35);text-decoration:none!important;color:#fff!important;margin-top:4px}\n.kx-cta .ic{font-size:22px}.kx-cta div{flex:1;font-size:12px;color:var(--t2);line-height:1.5}.kx-cta div b{display:block;color:#fff;font-size:13.5px}\n.kx-cta em{font-style:normal;color:var(--g);font-weight:800;font-size:13px;white-space:nowrap}\nhtml.kx-lock,html.kx-lock body{overflow:hidden!important;height:100%!important}\n@media (max-width:900px){\n #kx[data-step=\"3\"] .kx-ed{position:fixed;inset:0;z-index:100001;height:auto;max-height:none;min-height:0;border-radius:0;border:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;padding-bottom:env(safe-area-inset-bottom)}\n .kx-edtop{padding:calc(8px + env(safe-area-inset-top)) 10px 8px}\n .kx-stage{padding:12px 12px 58px}\n .kx-chip span.t{display:none}\n .kx-fl{flex-wrap:nowrap;gap:6px;left:8px;right:8px;bottom:10px}\n .kx-chip{height:34px;padding:0 10px;font-size:12px}\n .kx-badge{height:34px;font-size:12px}\n .kx-badge span b{display:none}\n .kx-side{border-left:0;border-top:1px solid var(--ln);flex-direction:column-reverse}\n .kx-tabs{border-bottom:0;border-top:1px solid var(--ln);padding:6px 6px 8px}\n .kx-panes{max-height:34vh;padding:12px 14px}\n .kx-bgs{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;row-gap:8px;margin-bottom:10px}\n .kx-bgs button span{display:none}\n .kx-bgs button,.kx-bgs label{border-radius:12px}\n}\n.kx-busy{position:fixed;inset:0;z-index:99995;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:rgba(5,7,13,.82);backdrop-filter:blur(6px);color:var(--t2);font-size:14px;text-align:center;padding:30px}\n.kx-busy.on{display:flex}\n.kx-busy .sp{width:46px;height:46px;border-radius:50%;border:3px solid rgba(122,215,255,.18);border-top-color:var(--c2);animation:kxS 1s linear infinite}\n.kx-busy .pb{width:220px;height:5px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}.kx-busy .pb i{display:block;height:100%;width:30%;background:linear-gradient(90deg,#4f8bff,#7ad7ff);animation:kxP 1.4s ease-in-out infinite}\n@keyframes kxS{to{transform:rotate(360deg)}}@keyframes kxP{0%{transform:translateX(-100%)}100%{transform:translateX(340%)}}\n.kx-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);opacity:0;z-index:99996;padding:12px 18px;border-radius:14px;background:#111a33;border:1px solid rgba(122,215,255,.35);font-size:13.5px;transition:.3s;pointer-events:none;max-width:90vw;text-align:center}\n.kx-toast.on{opacity:1;transform:translateX(-50%)}\n@media (max-width:980px){.kx-tips{grid-template-columns:1fr 1fr}}\n@media (max-width:760px){.kx-steps button span{display:none}.kx-steps button{padding:7px 9px}.kx-brand i{display:none}.kx-tr .kx-btn{padding:0 10px;font-size:12px;height:34px}.kx-src{grid-template-columns:1fr}.kx-bigbtn{min-height:118px;flex-direction:row;justify-content:flex-start;text-align:left;gap:14px;padding:18px}.kx-bigbtn .ic{font-size:34px}.kx-bigbtn div{display:flex;flex-direction:column;gap:3px}.kx-main{padding:12px}.kx-card{padding:14px;border-radius:18px}.kx-hero{padding:18px 14px 0}.kx-top{gap:8px;padding:8px 12px}.kx-tr .kx-lg{display:none}.kx-tr .kx-sm{display:inline}#kx[data-step=\"3\"] .kx-hero{display:none}}\n.kx-sm{display:none}\n<\/style>\n<button id=\"kxBack\" type=\"button\">\u2190 V\u1ec1 ch\u1ebf \u0111\u1ed9 T\u1ef1 \u0111\u1ed9ng (mi\u1ec5n ph\u00ed)<\/button>\n<div id=\"kx\">\n <div class=\"kx-top\">\n  <a class=\"kx-brand\" href=\"\/\"><b>K-BLACK<\/b><i>\u1ea2nh th\u1ebb<\/i><\/a>\n  <div class=\"kx-steps\" id=\"kxSteps\"><button type=\"button\" data-s=\"1\"><em>1<\/em><span>Gi\u1ea5y t\u1edd<\/span><\/button><button type=\"button\" data-s=\"2\" disabled><em>2<\/em><span>\u1ea2nh<\/span><\/button><button type=\"button\" data-s=\"3\" disabled><em>3<\/em><span>Ho\u00e0n thi\u1ec7n<\/span><\/button><\/div>\n  <div class=\"kx-tr\"><a class=\"kx-btn gold sm\" href=\"\/chup-anh-the-passport-visa\/\"><span class=\"kx-lg\">Ch\u1ee5p t\u1ea1i studio t\u1eeb 150K<\/span><span class=\"kx-sm\">Studio 150K<\/span><\/a><\/div>\n <\/div>\n <header class=\"kx-hero\"><h1>T\u1ea1o \u1ea3nh th\u1ebb online mi\u1ec5n ph\u00ed<\/h1><p>Ch\u1ee5p ho\u1eb7c t\u1ea3i \u1ea3nh, m\u00e1y t\u1ef1 t\u00e1ch n\u1ec1n, c\u0103n m\u1eb7t v\u00e0 ch\u1ea5m \u0111i\u1ec3m theo \u0111\u00fang chu\u1ea9n 3\u00d74, 4\u00d76, h\u1ed9 chi\u1ebfu, visa M\u1ef9, H\u00e0n, Nh\u1eadt, Schengen\u2026 \u1ea2nh x\u1eed l\u00fd ngay tr\u00ean m\u00e1y b\u1ea1n, kh\u00f4ng t\u1ea3i l\u00ean m\u1ea1ng.<\/p><ul><li>T\u00e1ch n\u1ec1n t\u1ef1 \u0111\u1ed9ng<\/li><li>Camera h\u01b0\u1edbng d\u1eabn t\u01b0 th\u1ebf<\/li><li>Ki\u1ec3m tra chu\u1ea9n visa<\/li><li>Ch\u1ec9nh \u1ea3nh nh\u01b0 app, xu\u1ea5t 300 dpi<\/li><\/ul><\/header>\n <div class=\"kx-main\">\n  <!-- STEP 1 -->\n  <section class=\"kx-pane on\" id=\"kxS1\">\n   <div class=\"kx-card\">\n    <div class=\"kx-h\"><h2>B\u1ea1n c\u1ea7n \u1ea3nh cho gi\u1ea5y t\u1edd g\u00ec?<\/h2><span id=\"kxCount\"><\/span><\/div>\n    <div class=\"kx-search\"><svg viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"m20 20-3.5-3.5\"\/><\/svg><input id=\"kxQ\" type=\"search\" placeholder=\"T\u00ecm: M\u1ef9, H\u00e0n Qu\u1ed1c, h\u1ed9 chi\u1ebfu, 3x4, Schengen\u2026\" autocomplete=\"off\" aria-label=\"T\u00ecm lo\u1ea1i \u1ea3nh\"><\/div>\n    <div class=\"kx-pop\" id=\"kxPop\"><\/div>\n    <div class=\"kx-list\" id=\"kxList\"><\/div>\n   <\/div>\n  <\/section>\n  <!-- STEP 2 -->\n  <section class=\"kx-pane\" id=\"kxS2\">\n   <div class=\"kx-card\">\n    <div class=\"kx-sel\" id=\"kxSel\"><\/div>\n    <div class=\"kx-src\">\n     <button type=\"button\" class=\"kx-bigbtn cam\" id=\"kxOpenCam\"><span class=\"ic\"><svg class=\"kx-i\" width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8h3l2-3h6l2 3h3v11H4z\"\/><circle cx=\"12\" cy=\"13\" r=\"3.5\"\/><\/svg><\/span><div><b>Ch\u1ee5p b\u1eb1ng camera<\/b><small>C\u00f3 khung h\u01b0\u1edbng d\u1eabn \u00b7 t\u1ef1 ch\u1ee5p khi b\u1ea1n \u0111\u1ee9ng \u0111\u00fang v\u1ecb tr\u00ed<\/small><\/div><\/button>\n     <label class=\"kx-bigbtn\" id=\"kxDrop\"><span class=\"ic\"><svg class=\"kx-i\" width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"\/><circle cx=\"9\" cy=\"10\" r=\"2\"\/><path d=\"M21 16l-5-5-8 8\"\/><\/svg><\/span><div><b>T\u1ea3i \u1ea3nh c\u00f3 s\u1eb5n<\/b><small>B\u1ea5m ch\u1ecdn \u00b7 k\u00e9o th\u1ea3 \u00b7 ho\u1eb7c d\u00e1n (Ctrl+V)<\/small><\/div><input type=\"file\" id=\"kxFile\" accept=\"image\/*\" hidden><\/label>\n    <\/div>\n    <div class=\"kx-tips\">\n     <div class=\"kx-tip\"><b><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"4\"\/><path d=\"M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5L19 19M5 19l1.5-1.5M17.5 6.5L19 5\"\/><\/svg> \u00c1nh s\u00e1ng<\/b>\u0110\u1ee9ng \u0111\u1ed1i di\u1ec7n c\u1eeda s\u1ed5 ho\u1eb7c \u0111\u00e8n, tr\u00e1nh b\u00f3ng \u0111\u1ed5 m\u1ed9t b\u00ean m\u1eb7t.<\/div>\n     <div class=\"kx-tip\"><b><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"7\" r=\"3.5\"\/><path d=\"M5 21v-2a7 7 0 0 1 14 0v2\"\/><\/svg> T\u01b0 th\u1ebf<\/b>Nh\u00ecn th\u1eb3ng, vai ngang, c\u1eb1m song song m\u1eb7t \u0111\u1ea5t.<\/div>\n     <div class=\"kx-tip\"><b><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"6.5\" cy=\"14\" r=\"3.5\"\/><circle cx=\"17.5\" cy=\"14\" r=\"3.5\"\/><path d=\"M10 14h4M3 14l1-6M21 14l-1-6\"\/><\/svg> Ph\u1ee5 ki\u1ec7n<\/b>B\u1ecf k\u00ednh, m\u0169; v\u00e9n t\u00f3c l\u1ed9 tr\u00e1n v\u00e0 hai tai.<\/div>\n     <div class=\"kx-tip\"><b><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 17L17 3l4 4L7 21z\"\/><path d=\"M7 13l2 2M10 10l2 2M13 7l2 2\"\/><\/svg> Kho\u1ea3ng c\u00e1ch<\/b>C\u00e1ch camera ~1 m, th\u1ea5y r\u00f5 \u0111\u1ea7u v\u00e0 vai.<\/div>\n    <\/div>\n    <div class=\"kx-priv\"><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg> \u1ea2nh \u0111\u01b0\u1ee3c x\u1eed l\u00fd ngay tr\u00ean m\u00e1y b\u1ea1n \u2014 kh\u00f4ng t\u1ea3i l\u00ean b\u1ea5t k\u1ef3 m\u00e1y ch\u1ee7 n\u00e0o.<\/div>\n   <\/div>\n  <\/section>\n  <!-- STEP 3 -->\n  <section class=\"kx-pane\" id=\"kxS3\">\n   <div class=\"kx-ed\">\n    <div class=\"kx-edtop\"><button type=\"button\" class=\"ib\" id=\"kxRetake\" aria-label=\"Ch\u1ecdn \u1ea3nh kh\u00e1c\">\u2039<\/button><div class=\"t\"><b id=\"kxEdT\">\u1ea2nh th\u1ebb<\/b><small id=\"kxMeta\"><\/small><\/div><button type=\"button\" class=\"kx-btn pri sm\" id=\"kxDl1\"><svg class=\"kx-i\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4v12M6 11l6 6 6-6M5 20h14\"\/><\/svg> T\u1ea3i \u1ea3nh<\/button><\/div>\n    <div class=\"kx-stage\" id=\"kxStage\">\n     <div class=\"kx-frame\" id=\"kxFrame\"><canvas id=\"kxOut\"><\/canvas><canvas class=\"bf\" id=\"kxBf\"><\/canvas><canvas class=\"gd\" id=\"kxGd\"><\/canvas><span class=\"lb\">\u1ea2NH G\u1ed0C<\/span><\/div>\n     <div class=\"kx-fl\"><button type=\"button\" class=\"kx-badge\" id=\"kxBadge\"><i>\u2713<\/i><span>\u0110\u1ea1t chu\u1ea9n<\/span><\/button><button type=\"button\" class=\"kx-chip\" id=\"kxCmp\"><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg> <span class=\"t\">Gi\u1eef \u0111\u1ec3 <\/span>xem g\u1ed1c<\/button><button type=\"button\" class=\"kx-chip\" id=\"kxGuideBtn\"><svg class=\"kx-i\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8V4h4M16 4h4v4M20 16v4h-4M8 20H4v-4\"\/><path d=\"M9 10h6M12 10v6\"\/><\/svg> Khung<span class=\"t\"> chu\u1ea9n<\/span><\/button><\/div>\n    <\/div>\n    <div class=\"kx-side\">\n     <div class=\"kx-tabs\" id=\"kxTabs\"><button type=\"button\" data-t=\"chk\" class=\"on\"><svg viewBox=\"0 0 24 24\"><path d=\"M9 12l2 2 4-4\"\/><circle cx=\"12\" cy=\"12\" r=\"9\"\/><\/svg>Ki\u1ec3m tra<\/button><button type=\"button\" data-t=\"bg\"><svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"3\"\/><path d=\"M4 15l5-5 4 4 3-3 4 4\"\/><\/svg>N\u1ec1n<\/button><button type=\"button\" data-t=\"crop\"><svg viewBox=\"0 0 24 24\"><path d=\"M6 2v14a2 2 0 0 0 2 2h14\"\/><path d=\"M18 22V8a2 2 0 0 0-2-2H2\"\/><\/svg>C\u0103n khung<\/button><button type=\"button\" data-t=\"tone\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"4\"\/><path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\"\/><\/svg>M\u00e0u & da<\/button><button type=\"button\" data-t=\"save\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 3v12M7 10l5 5 5-5M5 21h14\"\/><\/svg>T\u1ea3i v\u1ec1<\/button><\/div>\n     <div class=\"kx-panes\">\n      <div class=\"kx-tp on\" data-p=\"chk\"><div class=\"kx-score\" id=\"kxScore\"><\/div><ul class=\"kx-chk\" id=\"kxChk\"><\/ul><\/div>\n      <div class=\"kx-tp\" data-p=\"bg\"><span class=\"kx-lbl\">M\u00e0u n\u1ec1n<\/span><div class=\"kx-bgs\" id=\"kxBgs\"><\/div><p class=\"kx-hint\">M\u1ed7i chu\u1ea9n visa \u0111\u00e3 ch\u1ecdn s\u1eb5n m\u00e0u n\u1ec1n \u0111\u00fang quy \u0111\u1ecbnh. Ch\u1ec9 \u0111\u1ed5i khi n\u01a1i n\u1ed9p y\u00eau c\u1ea7u kh\u00e1c.<\/p><\/div>\n      <div class=\"kx-tp\" data-p=\"crop\"><span class=\"kx-lbl\">C\u0103n khung<\/span>\n       <div class=\"kx-sl\"><span>C\u1ee1 \u0111\u1ea7u<\/span><input type=\"range\" id=\"kxZoom\" min=\"-12\" max=\"12\" value=\"0\"><output>0<\/output><\/div>\n       <div class=\"kx-nud\"><button type=\"button\" data-n=\"dy,1\"><em>\u2191<\/em>L\u00ean<\/button><button type=\"button\" data-n=\"dy,-1\"><em>\u2193<\/em>Xu\u1ed1ng<\/button><button type=\"button\" data-n=\"dx,-1\"><em>\u2190<\/em>Tr\u00e1i<\/button><button type=\"button\" data-n=\"dx,1\"><em>\u2192<\/em>Ph\u1ea3i<\/button><\/div>\n       <input type=\"range\" id=\"kxDy\" min=\"-15\" max=\"15\" value=\"0\" hidden><output hidden><\/output><input type=\"range\" id=\"kxDx\" min=\"-15\" max=\"15\" value=\"0\" hidden><output hidden><\/output>\n       <button type=\"button\" class=\"kx-btn sm\" id=\"kxReset\" style=\"width:100%;margin-top:8px\">\u21ba C\u0103n l\u1ea1i t\u1ef1 \u0111\u1ed9ng<\/button>\n       <p class=\"kx-hint\">M\u1eb9o: k\u00e9o \u1ea3nh \u0111\u1ec3 d\u1ecbch, ch\u1ee5m 2 ng\u00f3n (ho\u1eb7c l\u0103n chu\u1ed9t) \u0111\u1ec3 ph\u00f3ng to \/ thu nh\u1ecf.<\/p><\/div>\n      <div class=\"kx-tp\" data-p=\"tone\"><span class=\"kx-lbl\">M\u00e0u &amp; da<\/span>\n       <label class=\"kx-sw\">T\u1ef1 c\u00e2n s\u00e1ng &amp; m\u00e0u da<input type=\"checkbox\" id=\"kxAuto\" checked><\/label>\n       <label class=\"kx-sw\">L\u00e0m m\u1ecbn da nh\u1eb9 (gi\u1eef n\u00e9t m\u1eb7t)<input type=\"checkbox\" id=\"kxSmooth\" checked><\/label>\n       <div class=\"kx-sl\"><span>\u0110\u1ed9 s\u00e1ng<\/span><input type=\"range\" id=\"kxBri\" min=\"-30\" max=\"30\" value=\"0\"><output>0<\/output><\/div>\n       <div class=\"kx-sl\"><span>\u1ea4m \/ l\u1ea1nh<\/span><input type=\"range\" id=\"kxTemp\" min=\"-30\" max=\"30\" value=\"0\"><output>0<\/output><\/div>\n       <div class=\"kx-sl\"><span>M\u1ec1m vi\u1ec1n t\u00f3c<\/span><input type=\"range\" id=\"kxFeather\" min=\"0\" max=\"6\" step=\"0.5\" value=\"1.5\"><output>1.5<\/output><\/div><\/div>\n      <div class=\"kx-tp\" data-p=\"save\"><span class=\"kx-lbl\">T\u1ea3i v\u1ec1<\/span>\n       <div class=\"kx-dl\"><button type=\"button\" class=\"kx-btn pri big\" id=\"kxDl1b\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4v12M6 11l6 6 6-6M5 20h14\"\/><\/svg> T\u1ea3i \u1ea3nh JPG <span id=\"kxDl1s\"><\/span><\/button><button type=\"button\" class=\"kx-btn\" id=\"kxDlS\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 9V3h10v6\"\/><rect x=\"3\" y=\"9\" width=\"18\" height=\"8\" rx=\"2\"\/><path d=\"M7 14h10v7H7z\"\/><\/svg> Gh\u00e9p s\u1eb5n kh\u1ed5 in 10\u00d715 \u00b7 <span id=\"kxDlSn\">8<\/span> \u1ea3nh<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxDlMix\" hidden><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"8\" height=\"11\" rx=\"1\"\/><rect x=\"13\" y=\"4\" width=\"8\" height=\"7\" rx=\"1\"\/><rect x=\"13\" y=\"13\" width=\"8\" height=\"7\" rx=\"1\"\/><path d=\"M3 19h8\"\/><\/svg> Gh\u00e9p 4\u00d76 + 3\u00d74 \u00b7 2 + 4 \u1ea3nh (kh\u1ed5 10\u00d715)<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxDlA4\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 9V3h10v6\"\/><rect x=\"3\" y=\"9\" width=\"18\" height=\"8\" rx=\"2\"\/><path d=\"M7 14h10v7H7z\"\/><\/svg> Gh\u00e9p kh\u1ed5 A4 \u00b7 <span id=\"kxDlA4n\">0<\/span> \u1ea3nh<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxShare\" hidden><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"18\" cy=\"5\" r=\"2.5\"\/><circle cx=\"6\" cy=\"12\" r=\"2.5\"\/><circle cx=\"18\" cy=\"19\" r=\"2.5\"\/><path d=\"M8.2 10.8l7.6-4.3M8.2 13.2l7.6 4.3\"\/><\/svg> G\u1eedi qua Zalo \/ Messenger<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxDlW\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 2L11 13\"\/><path d=\"M22 2l-7 20-4-9-9-4z\"\/><\/svg> B\u1ea3n nh\u1eb9 n\u1ed9p online (\u2264 240 KB)<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxDl3\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4v12M6 11l6 6 6-6M5 20h14\"\/><\/svg> PNG n\u1ec1n trong su\u1ed1t<\/button><button type=\"button\" class=\"kx-btn\" id=\"kxNew\"><svg class=\"kx-i\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8h3l2-3h6l2 3h3v11H4z\"\/><circle cx=\"12\" cy=\"13\" r=\"3.5\"\/><\/svg> L\u00e0m \u1ea3nh kh\u00e1c<\/button><\/div>\n       <p class=\"kx-hint\" style=\"margin-bottom:12px\">File \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt, 300 dpi. B\u1ea3n <b>kh\u1ed5 10\u00d715<\/b> mang ra ti\u1ec7m in \u1ea3nh l\u00e0 c\u1eaft \u0111\u01b0\u1ee3c nhi\u1ec1u t\u1ea5m; khi in ch\u1ecdn ch\u1ebf \u0111\u1ed9 <b>100% \/ k\u00edch th\u01b0\u1edbc th\u1ef1c<\/b>. B\u1ea3n nh\u1eb9 d\u00f9ng cho c\u1ed5ng n\u1ed9p h\u1ed3 s\u01a1 online gi\u1edbi h\u1ea1n dung l\u01b0\u1ee3ng.<\/p>\n       <a class=\"kx-cta\" href=\"\/chup-anh-the-passport-visa\/\"><span class=\"ic\"><svg class=\"kx-i\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8h3l2-3h6l2 3h3v11H4z\"\/><circle cx=\"12\" cy=\"13\" r=\"3.5\"\/><\/svg><\/span><div><b>H\u1ed3 s\u01a1 visa quan tr\u1ecdng?<\/b>Ch\u1ee5p t\u1ea1i studio K-BLACK \u00b7 \u0111\u00e8n chuy\u00ean nghi\u1ec7p \u00b7 l\u1ea5y ngay<\/div><em>T\u1eeb 150K \u203a<\/em><\/a><\/div>\n     <\/div>\n    <\/div>\n   <\/div>\n  <\/section>\n <\/div>\n <div class=\"kx-cam\" id=\"kxCam\"><div class=\"vw\"><video id=\"kxVid\" playsinline muted><\/video><canvas class=\"ov\" id=\"kxOv\"><\/canvas><div class=\"msg\" id=\"kxMsg\">\u0110ang m\u1edf camera\u2026<\/div><div class=\"cd\" id=\"kxCd\">3<\/div><div class=\"flash\" id=\"kxFlash\"><\/div><\/div>\n  <div class=\"bar\"><button type=\"button\" class=\"cb\" id=\"kxCamX\" aria-label=\"\u0110\u00f3ng\">\u2715<\/button><button type=\"button\" class=\"shut\" id=\"kxShut\" aria-label=\"Ch\u1ee5p\"><\/button><div class=\"auto on\" id=\"kxAutoCap\"><i><\/i>T\u1ef1 ch\u1ee5p<\/div><button type=\"button\" class=\"cb\" id=\"kxFlip\" aria-label=\"\u0110\u1ed5i camera\">\u27f2<\/button><\/div><\/div>\n <div class=\"kx-busy\" id=\"kxBusy\"><div class=\"sp\"><\/div><div id=\"kxBusyT\">\u0110ang x\u1eed l\u00fd\u2026<\/div><div class=\"pb\"><i><\/i><\/div><\/div>\n <div class=\"kx-toast\" id=\"kxToast\"><\/div>\n<\/div>\n<script>\n(function(){\nif(window.__kx)return;window.__kx=1;\nvar H=document.documentElement,$=function(i){return document.getElementById(i)};\nH.classList.add('kbid-free');\nvar aiBtn=$('kxToAI');if(aiBtn)aiBtn.onclick=function(){H.classList.remove('kbid-free');scrollTo(0,0)};\n$('kxBack').onclick=function(){H.classList.add('kbid-free');scrollTo(0,0)};\nfunction toast(t){var e=$('kxToast');e.textContent=t;e.classList.add('on');clearTimeout(e._t);e._t=setTimeout(function(){e.classList.remove('on')},3400)}\nfunction busy(on,t){$('kxBusy').classList.toggle('on',!!on);if(t)$('kxBusyT').textContent=t}\nfunction ls(k,v){try{if(v===undefined)return JSON.parse(localStorage.getItem(k)||'null');localStorage.setItem(k,JSON.stringify(v))}catch(e){return null}}\nfunction norm(s){return String(s).toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g,'').replace(\/\u0111\/g,'d')}\n\/* ---------- documents: id, flag, name, use, w, h, headMin, headMax, bg, keywords, rules, opts ---------- *\/\nvar DOCS=[\n {id:'vn46',f:'\ud83c\uddfb\ud83c\uddf3',n:'H\u1ed9 chi\u1ebfu Vi\u1ec7t Nam',u:'H\u1ed9 chi\u1ebfu, visa, h\u1ed3 s\u01a1 4\u00d76',w:40,h:60,a:42,b:47,top:[2,3.5],bg:'#ffffff',k:'ho chieu viet nam passport 4x6 cccd can cuoc giay to ho so',r:['N\u1ec1n tr\u1eafng','L\u1ed9 tr\u00e1n & 2 tai','Kh\u00f4ng \u0111eo k\u00ednh','Kh\u00f4ng c\u01b0\u1eddi','\u0110\u1ea7u 42\u201347 mm (m\u1eb7t 70\u201380% \u1ea3nh)']},\n {id:'vn34',f:'\ud83c\uddfb\ud83c\uddf3',n:'\u1ea2nh th\u1ebb 3\u00d74',u:'H\u1ed3 s\u01a1 xin vi\u1ec7c, b\u1eb1ng c\u1ea5p, th\u1ebb sinh vi\u00ean',w:30,h:40,a:22,b:27,bg:'#ffffff',k:'3x4 ho so xin viec cv bang cap the sinh vien bang lai',r:['N\u1ec1n tr\u1eafng ho\u1eb7c xanh','Nh\u00ecn th\u1eb3ng']},\n {id:'vn23',f:'\ud83c\uddfb\ud83c\uddf3',n:'\u1ea2nh th\u1ebb 2\u00d73',u:'Th\u1ebb nh\u1ecf, s\u1ed5, h\u1ed3 s\u01a1',w:20,h:30,a:16,b:20,bg:'#ffffff',k:'2x3 the nho',r:['N\u1ec1n tr\u1eafng']},\n {id:'us',f:'\ud83c\uddfa\ud83c\uddf8',n:'Visa \/ h\u1ed9 chi\u1ebfu M\u1ef9',u:'2\u00d72 inch (51\u00d751 mm)',w:50.8,h:50.8,a:25,b:35,bg:'#ffffff',k:'my usa us america visa my 2x2 inch passport hoa ky',r:['N\u1ec1n tr\u1eafng','Kh\u00f4ng \u0111eo k\u00ednh','M\u1eaft c\u00e1ch \u0111\u00e1y 28\u201335 mm'],eye:[28,35],strict:1},\n {id:'kr',f:'\ud83c\uddf0\ud83c\uddf7',n:'Visa H\u00e0n Qu\u1ed1c',u:'3.5\u00d74.5 cm',w:35,h:45,a:32,b:36,bg:'#ffffff',k:'han quoc korea visa han 3.5x4.5 35x45',r:['N\u1ec1n tr\u1eafng','Kh\u00f4ng \u0111eo k\u00ednh','Mi\u1ec7ng kh\u00e9p'],strict:1},\n {id:'jp',f:'\ud83c\uddef\ud83c\uddf5',n:'Visa Nh\u1eadt B\u1ea3n',u:'3.5\u00d74.5 cm',w:35,h:45,a:32,b:36,bg:'#ffffff',k:'nhat ban japan visa nhat 35x45',r:['N\u1ec1n tr\u1eafng, kh\u00f4ng b\u00f3ng','Ch\u1eeba kho\u1ea3ng tr\u00ean \u0111\u1ea7u']},\n {id:'schengen',f:'\ud83c\uddea\ud83c\uddfa',n:'Visa Schengen (ch\u00e2u \u00c2u)',u:'\u0110\u1ee9c, Ph\u00e1p, \u00dd, H\u00e0 Lan, T\u00e2y Ban Nha\u2026 3.5\u00d74.5',w:35,h:45,a:32,b:36,bg:'#f1f2f4',k:'schengen chau au eu duc phap y ha lan tay ban nha thuy si bi ao sec ba lan europe germany france italy',r:['N\u1ec1n s\u00e1ng tr\u1eafng\/x\u00e1m','\u0110\u1ea7u 32\u201336 mm'],strict:1},\n {id:'cn',f:'\ud83c\udde8\ud83c\uddf3',n:'Visa Trung Qu\u1ed1c',u:'3.3\u00d74.8 cm',w:33,h:48,a:28,b:33,top:[3,5],bg:'#ffffff',k:'trung quoc china visa tq 33x48',r:['N\u1ec1n tr\u1eafng','L\u1ed9 tai','\u0110\u1ea7u 28\u201333 mm'],strict:1},\n {id:'tw',f:'\ud83c\uddf9\ud83c\uddfc',n:'Visa \u0110\u00e0i Loan',u:'3.5\u00d74.5 cm',w:35,h:45,a:32,b:36,bg:'#ffffff',k:'dai loan taiwan visa 35x45',r:['N\u1ec1n tr\u1eafng','\u0110\u1ea7u 32\u201336 mm']},\n {id:'uk',f:'\ud83c\uddec\ud83c\udde7',n:'Visa Anh (UK)',u:'3.5\u00d74.5 cm',w:35,h:45,a:29,b:34,bg:'#ebebea',k:'anh uk england britain visa anh quoc',r:['N\u1ec1n x\u00e1m nh\u1ea1t \/ kem','\u0110\u1ea7u 29\u201334 mm'],strict:1},\n {id:'au',f:'\ud83c\udde6\ud83c\uddfa',n:'Visa \u00dac',u:'3.5\u00d74.5 cm',w:35,h:45,a:32,b:36,bg:'#f4f5f6',k:'uc australia visa uc',r:['N\u1ec1n s\u00e1ng tr\u01a1n','\u0110\u1ea7u 32\u201336 mm']},\n {id:'ca',f:'\ud83c\udde8\ud83c\udde6',n:'Visa Canada',u:'3.5\u00d74.5 cm',w:35,h:45,a:31,b:36,bg:'#ffffff',k:'canada visa ca 35x45 tam tru',r:['N\u1ec1n tr\u1eafng \/ s\u00e1ng','\u0110\u1ea7u 31\u201336 mm'],strict:1},\n {id:'cap',f:'\ud83c\udde8\ud83c\udde6',n:'H\u1ed9 chi\u1ebfu Canada',u:'5\u00d77 cm',w:50,h:70,a:31,b:36,bg:'#ffffff',k:'canada passport ho chieu 50x70 5x7',r:['N\u1ec1n tr\u1eafng','\u0110\u1ea7u 31\u201336 mm']}\n];\nvar POP=[['vn46','H\u1ed9 chi\u1ebfu VN'],['vn34','3\u00d74'],['us','Visa M\u1ef9'],['kr','H\u00e0n Qu\u1ed1c'],['jp','Nh\u1eadt'],['schengen','Schengen'],['cn','Trung Qu\u1ed1c'],['tw','\u0110\u00e0i Loan']];\nfunction byId(id){for(var i=0;i<DOCS.length;i++)if(DOCS[i].id===id)return DOCS[i];return null}\nvar D=null,STEP=1,maxStep=1;\nfunction go(n){STEP=n;$('kx').setAttribute('data-step',n);H.classList.toggle('kx-lock',n===3&&innerWidth<=900);if(n===3)setTimeout(fit,30);if(n>maxStep)maxStep=n;[1,2,3].forEach(function(i){$('kxS'+i).classList.toggle('on',i===n)});\n  [].forEach.call($('kxSteps').children,function(b){var s=+b.dataset.s;b.classList.toggle('on',s===n);b.classList.toggle('done',s<n);b.disabled=s>maxStep||(s===3&&!S.rc)});\n  var y=$('kx').getBoundingClientRect().top+scrollY;if(n===3&&innerWidth>900){var e=document.querySelector('.kx-ed');if(e)scrollTo({top:e.getBoundingClientRect().top+scrollY-70,behavior:'smooth'})}else if(scrollY>y+40)scrollTo({top:y,behavior:'smooth'})}\n[].forEach.call($('kxSteps').children,function(b){b.onclick=function(){var s=+b.dataset.s;if(s===3&&!S.rc)return;if(s<=maxStep)go(s)}});\n\/* ---------- step 1 ---------- *\/\nfunction docHTML(d){return '<button type=\"button\" class=\"kx-doc'+(D&&D.id===d.id?' on':'')+'\" data-id=\"'+d.id+'\"><span class=\"fl\">'+d.f+'<\/span><span class=\"tx\"><b>'+d.n+'<\/b><small>'+d.u+'<\/small><\/span><span class=\"sz\">'+(d.id==='us'?'2\u00d72\"':(d.w\/10)+'\u00d7'+(d.h\/10))+'<\/span><\/button>'}\nfunction renderList(){var q=norm($('kxQ').value.trim()),L=DOCS.filter(function(d){return !q||norm(d.n+' '+d.u+' '+d.k).indexOf(q)>-1||q.split(\/\\s+\/).every(function(w){return norm(d.n+' '+d.u+' '+d.k).indexOf(w)>-1})});\n  $('kxList').innerHTML=L.length?L.map(docHTML).join(''):'<div class=\"kx-empty\">Ch\u01b0a c\u00f3 chu\u1ea9n n\u00e0y. Ch\u1ecdn \"\u1ea2nh th\u1ebb 3\u00d74\" ho\u1eb7c nh\u1eafn Zalo 0367 277 935 \u0111\u1ec3 K-BLACK t\u01b0 v\u1ea5n.<\/div>';\n  $('kxCount').textContent=DOCS.length+' chu\u1ea9n \u1ea3nh';\n  [].forEach.call($('kxList').querySelectorAll('.kx-doc'),function(b){b.onclick=function(){pick(b.dataset.id,true)}})}\n$('kxPop').innerHTML=POP.map(function(p){var d=byId(p[0]);return '<button type=\"button\" data-id=\"'+p[0]+'\">'+d.f+' '+p[1]+'<\/button>'}).join('');\n[].forEach.call($('kxPop').children,function(b){b.onclick=function(){pick(b.dataset.id,true)}});\n$('kxQ').oninput=renderList;\nfunction pick(id,adv){var d=byId(id);if(!d)return;var changed=!D||D.id!==id;D=d;ls('kx_last',{d:id,bg:bgCol});\n  $('kxSel').innerHTML='<span class=\"fl\">'+d.f+'<\/span><div class=\"tx\"><b>'+d.n+' \u00b7 '+(d.id==='us'?'2\u00d72 inch':d.w+'\u00d7'+d.h+' mm')+'<\/b><small>'+d.r.join(' \u00b7 ')+'<\/small><\/div><button type=\"button\" class=\"kx-btn sm\" id=\"kxChange\">\u0110\u1ed5i<\/button>';\n  $('kxChange').onclick=function(){go(1)};\n  if(changed&&!bgTouched){bgCol=d.bg;paintBgs()}\n  renderList();\n  if(S.rc){resetCount();render();if(adv)go(3);return}\n  if(adv)go(2);loadAI()}\n\/* ---------- background colours ---------- *\/\nvar BGS=[['#ffffff','Tr\u1eafng'],['#f1f2f4','X\u00e1m nh\u1ea1t'],['#ebebea','X\u00e1m UK'],['#dfe9f7','Xanh nh\u1ea1t'],['#3c79d6','Xanh d\u01b0\u01a1ng'],['#f3ead8','Kem']];\nvar bgCol='#ffffff',bgTouched=false;\nfunction paintBgs(){$('kxBgs').innerHTML=BGS.map(function(b){return '<button type=\"button\" title=\"'+b[1]+'\" data-c=\"'+b[0]+'\" style=\"background:'+b[0]+'\" class=\"'+(b[0]===bgCol?'on':'')+'\"><span>'+b[1]+'<\/span><\/button>'}).join('')+'<label title=\"M\u00e0u kh\u00e1c\"><svg class=\\'kx-i\\' width=\\'18\\' height=\\'18\\' viewBox=\\'0 0 24 24\\' fill=\\'none\\' stroke=\\'currentColor\\' stroke-width=\\'1.8\\' stroke-linecap=\\'round\\' stroke-linejoin=\\'round\\' aria-hidden=\\'true\\'><path d=\\'M12 3a9 9 0 1 0 0 18c1 0 1.5-.8 1.5-1.6 0-1-.8-1.4-.8-2.4 0-1 .8-1.6 1.8-1.6H17a4 4 0 0 0 4-4c0-4.7-4-8.4-9-8.4z\\'\/><circle cx=\\'7.5\\' cy=\\'11\\' r=\\'1\\'\/><circle cx=\\'12\\' cy=\\'7.5\\' r=\\'1\\'\/><circle cx=\\'16.5\\' cy=\\'11\\' r=\\'1\\'\/><\/svg><input type=\"color\" id=\"kxBgC\" value=\"#cfd8e3\"><\/label>';\n  [].forEach.call($('kxBgs').querySelectorAll('button'),function(x){x.onclick=function(){bgCol=x.dataset.c;bgTouched=true;paintBgs();rq();ls('kx_last',{d:D&&D.id,bg:bgCol})}});\n  $('kxBgC').oninput=function(){bgCol=this.value;bgTouched=true;[].forEach.call($('kxBgs').querySelectorAll('button'),function(y){y.classList.remove('on')});rq()}}\npaintBgs();\n\/* ---------- AI (MediaPipe, lazy) ---------- *\/\nvar MP=null,FL=null,FLV=null,SEG=null,VIS=null,FS=null;\nvar CDN='https:\/\/cdn.jsdelivr.net\/npm\/@mediapipe\/tasks-vision@0.10.14';\nvar MFACE='https:\/\/storage.googleapis.com\/mediapipe-models\/face_landmarker\/face_landmarker\/float16\/1\/face_landmarker.task';\nfunction loadAI(){if(MP)return MP;MP=import(CDN+'\/vision_bundle.mjs').then(function(V){VIS=V;return V.FilesetResolver.forVisionTasks(CDN+'\/wasm').then(function(fs){FS=fs;\n  var mk=function(gpu){return Promise.all([\n   V.FaceLandmarker.createFromOptions(fs,{baseOptions:{modelAssetPath:MFACE,delegate:gpu?'GPU':'CPU'},runningMode:'IMAGE',numFaces:2,outputFaceBlendshapes:true}),\n   V.ImageSegmenter.createFromOptions(fs,{baseOptions:{modelAssetPath:'https:\/\/storage.googleapis.com\/mediapipe-models\/image_segmenter\/selfie_multiclass_256x256\/float32\/latest\/selfie_multiclass_256x256.tflite',delegate:gpu?'GPU':'CPU'},runningMode:'IMAGE',outputCategoryMask:false,outputConfidenceMasks:true})])};\n  return mk(true).catch(function(){return mk(false)}).then(function(r){FL=r[0];SEG=r[1];return true})})});\n  MP.catch(function(){MP=null});return MP}\nfunction loadVideoAI(){if(FLV)return Promise.resolve(FLV);return loadAI().then(function(){var mk=function(gpu){return VIS.FaceLandmarker.createFromOptions(FS,{baseOptions:{modelAssetPath:MFACE,delegate:gpu?'GPU':'CPU'},runningMode:'VIDEO',numFaces:1,outputFaceBlendshapes:true})};return mk(true).catch(function(){return mk(false)}).then(function(f){FLV=f;return f})})}\n\/* ---------- step 2: input ---------- *\/\nvar S={};\nfunction readFile(f){if(!f)return;if(!\/^image\\\/\/.test(f.type)&&!\/\\.(heic|heif)$\/i.test(f.name)){toast('File n\u00e0y kh\u00f4ng ph\u1ea3i \u1ea3nh');return}\n  var u=URL.createObjectURL(f),im=new Image();im.onload=function(){process(im,false);URL.revokeObjectURL(u)};im.onerror=function(){toast('M\u00e1y kh\u00f4ng \u0111\u1ecdc \u0111\u01b0\u1ee3c \u1ea3nh n\u00e0y (c\u00f3 th\u1ec3 l\u00e0 HEIC) \u2014 h\u00e3y ch\u1ee5p m\u00e0n h\u00ecnh \u1ea3nh ho\u1eb7c chuy\u1ec3n sang JPG');};im.src=u}\n$('kxFile').onchange=function(){readFile(this.files[0]);this.value=''};\nif(\/[?&]kxtest=1\/.test(location.search))window.__kxTest={S:function(){return S},D:function(){return D},pick:pick,readFile:readFile,render:render,OUT:OUT,DOCS:DOCS};\nvar dz=$('kxDrop');['dragenter','dragover'].forEach(function(e){dz.addEventListener(e,function(ev){ev.preventDefault();dz.classList.add('over')})});\n['dragleave','drop'].forEach(function(e){dz.addEventListener(e,function(ev){ev.preventDefault();dz.classList.remove('over')})});\ndz.addEventListener('drop',function(e){readFile(e.dataTransfer.files[0])});\ndocument.addEventListener('dragover',function(e){if(H.classList.contains('kbid-free')&&STEP>1)e.preventDefault()});\ndocument.addEventListener('drop',function(e){if(H.classList.contains('kbid-free')&&STEP>1&&e.target.closest&&!e.target.closest('#kxDrop')){e.preventDefault();readFile(e.dataTransfer.files[0])}});\ndocument.addEventListener('paste',function(e){if(!H.classList.contains('kbid-free'))return;var it=[].filter.call(e.clipboardData.items||[],function(i){return i.type.indexOf('image')===0})[0];if(it){if(!D)pick('vn46',false);readFile(it.getAsFile())}});\n\/* ---------- camera ---------- *\/\nvar CAM={stream:null,facing:'user',raf:0,auto:true,okSince:0,cd:0,last:0};\n$('kxOpenCam').onclick=openCam;$('kxCamX').onclick=closeCam;$('kxShut').onclick=function(){capture()};\n$('kxAutoCap').onclick=function(){CAM.auto=!CAM.auto;this.classList.toggle('on',CAM.auto);CAM.okSince=0};\n$('kxFlip').onclick=function(){CAM.facing=CAM.facing==='user'?'environment':'user';startStream()};\nfunction openCam(){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia){toast('Tr\u00ecnh duy\u1ec7t kh\u00f4ng h\u1ed7 tr\u1ee3 camera \u2014 h\u00e3y d\u00f9ng \"T\u1ea3i \u1ea3nh c\u00f3 s\u1eb5n\"');return}\n  $('kxCam').classList.add('on');document.body.style.overflow='hidden';$('kxMsg').textContent='\u0110ang m\u1edf camera\u2026';$('kxMsg').className='msg';\n  startStream();loadVideoAI().then(function(){if($('kxCam').classList.contains('on'))loop()}).catch(function(){$('kxMsg').textContent='Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c b\u1ed9 nh\u1eadn di\u1ec7n \u2014 v\u1eabn c\u00f3 th\u1ec3 b\u1ea5m n\u00fat ch\u1ee5p'})}\nfunction startStream(){stopStream();navigator.mediaDevices.getUserMedia({video:{facingMode:CAM.facing,width:{ideal:1920},height:{ideal:1440}},audio:false}).then(function(st){CAM.stream=st;var v=$('kxVid');v.srcObject=st;v.style.transform=CAM.facing==='user'?'scaleX(-1)':'none';v.play()}).catch(function(e){toast('Kh\u00f4ng m\u1edf \u0111\u01b0\u1ee3c camera: h\u00e3y cho ph\u00e9p quy\u1ec1n camera, ho\u1eb7c d\u00f9ng \"T\u1ea3i \u1ea3nh c\u00f3 s\u1eb5n\"');closeCam()})}\nfunction stopStream(){if(CAM.stream){CAM.stream.getTracks().forEach(function(t){t.stop()});CAM.stream=null}}\nfunction closeCam(){cancelAnimationFrame(CAM.raf);CAM.raf=0;stopStream();$('kxCam').classList.remove('on');document.body.style.overflow='';$('kxCd').style.display='none';CAM.okSince=0}\nfunction mid(a,b){return {x:(a.x+b.x)\/2,y:(a.y+b.y)\/2}}\nfunction dist(a,b){return Math.hypot(a.x-b.x,a.y-b.y)}\nfunction bs(res,name){var c=res.faceBlendshapes&&res.faceBlendshapes[0];if(!c)return 0;for(var i=0;i<c.categories.length;i++)if(c.categories[i].categoryName===name)return c.categories[i].score;return 0}\nvar smp=document.createElement('canvas');smp.width=64;smp.height=48;var smx=smp.getContext('2d',{willReadFrequently:true});\nfunction loop(){CAM.raf=requestAnimationFrame(loop);var v=$('kxVid');if(!v.videoWidth||!FLV)return;var now=performance.now();if(now-CAM.last<80)return;CAM.last=now;\n  var ov=$('kxOv'),r=ov.getBoundingClientRect();if(ov.width!==Math.round(r.width)){ov.width=Math.round(r.width);ov.height=Math.round(r.height)}\n  var vw=v.videoWidth,vh=v.videoHeight,sc=Math.max(r.width\/vw,r.height\/vh),ox=(r.width-vw*sc)\/2,oy=(r.height-vh*sc)\/2,mir=CAM.facing==='user';\n  var toS=function(p){var x=p.x*vw*sc+ox;if(mir)x=r.width-x;return {x:x,y:p.y*vh*sc+oy}};\n  \/\/ guide oval (head target \u2248 middle of spec range, relative to visible height)\n  var d=D||byId('vn46'),hMM=(d.a+d.b)\/2,tMM=Math.max(2,(d.h-hMM)*.26),A=r.height*0.8,Aw=A*d.w\/d.h;if(Aw>r.width*0.9){A*=r.width*0.9\/Aw;Aw=r.width*0.9}\n  var ovH=A*hMM\/d.h,ovW=ovH*0.74,cx=r.width\/2,aTop=(r.height-A)\/2-r.height*0.02,cy=aTop+A*tMM\/d.h+ovH\/2;\n  var res=null;try{res=FLV.detectForVideo(v,now)}catch(e){}\n  var msg='\u0110\u01b0a khu\u00f4n m\u1eb7t v\u00e0o khung',ok=false;\n  if(res&&res.faceLandmarks&&res.faceLandmarks.length){var L=res.faceLandmarks[0],P=function(i){return toS(L[i])};\n    var top=P(10),chin=P(152),eL=mid(P(33),P(133)),eR=mid(P(362),P(263)),nose=P(1),em=mid(eL,eR),ed=dist(eL,eR);\n    var fh=(chin.y-top.y)*1.28,fcx=(top.x+chin.x)\/2,fcy=(top.y+chin.y)\/2-(chin.y-top.y)*0.08;\n    var roll=Math.atan2(eR.y-eL.y,eR.x-eL.x)*180\/Math.PI;if(mir)roll=-roll;\n    var yaw=(nose.x-em.x)\/ed,pitch=(nose.y-em.y)\/Math.max(1,(chin.y-em.y));\n    var blink=Math.max(bs(res,'eyeBlinkLeft'),bs(res,'eyeBlinkRight')),jaw=bs(res,'jawOpen');\n    \/\/ light\n    smx.save();if(mir){smx.translate(64,0);smx.scale(-1,1)}smx.drawImage(v,0,0,64,48);smx.restore();\n    var lx=function(p){return Math.round((p.x-ox)\/(vw*sc)*64)},ly=function(p){return Math.round((p.y-oy)\/(vh*sc)*48)};\n    var area=function(x0,y0,x1,y1){x0=Math.max(0,x0);y0=Math.max(0,y0);x1=Math.min(63,x1);y1=Math.min(47,y1);if(x1<=x0||y1<=y0)return 128;var dd=smx.getImageData(x0,y0,x1-x0,y1-y0).data,s=0;for(var i=0;i<dd.length;i+=4)s+=.299*dd[i]+.587*dd[i+1]+.114*dd[i+2];return s\/(dd.length\/4)};\n    var cxl=lx(em),cyl=ly(em),hw=Math.max(2,Math.round(ed\/(vw*sc)*64*.6)),hh=Math.max(2,Math.round(ed\/(vh*sc)*48*.6));\n    var Lb=area(cxl-2*hw,cyl,cxl,cyl+2*hh),Rb=area(cxl,cyl,cxl+2*hw,cyl+2*hh),lum=(Lb+Rb)\/2;\n    if(fh<ovH*0.80)msg='L\u1ea1i g\u1ea7n camera h\u01a1n m\u1ed9t ch\u00fat';\n    else if(fh>ovH*1.18)msg='L\u00f9i ra xa m\u1ed9t ch\u00fat';\n    else if(fcx<cx-ovW*0.16)msg='D\u1ecbch sang ph\u1ea3i m\u1ed9t ch\u00fat';\n    else if(fcx>cx+ovW*0.16)msg='D\u1ecbch sang tr\u00e1i m\u1ed9t ch\u00fat';\n    else if(fcy<cy-ovH*0.12)msg='H\u1ea1 m\u00e1y xu\u1ed1ng \/ c\u00fai nh\u1eb9 cho v\u00e0o khung';\n    else if(fcy>cy+ovH*0.12)msg='N\u00e2ng m\u00e1y l\u00ean cho v\u00e0o khung';\n    else if(Math.abs(roll)>4)msg='Gi\u1eef \u0111\u1ea7u th\u1eb3ng, \u0111\u1eebng nghi\u00eang';\n    else if(Math.abs(yaw)>0.11)msg='Nh\u00ecn th\u1eb3ng v\u00e0o camera';\n    else if(pitch<0.33)msg='H\u1ea1 c\u1eb1m xu\u1ed1ng m\u1ed9t ch\u00fat';\n    else if(pitch>0.62)msg='N\u00e2ng c\u1eb1m l\u00ean m\u1ed9t ch\u00fat';\n    else if(blink>0.5)msg='M\u1edf m\u1eaft t\u1ef1 nhi\u00ean';\n    else if(jaw>0.18)msg='Kh\u00e9p mi\u1ec7ng l\u1ea1i';\n    else if(lum<70)msg='Thi\u1ebfu s\u00e1ng \u2014 quay m\u1eb7t v\u1ec1 ph\u00eda c\u1eeda s\u1ed5\/\u0111\u00e8n';\n    else if(Math.abs(Lb-Rb)>38)msg='M\u1eb7t b\u1ecb b\u00f3ng m\u1ed9t b\u00ean \u2014 \u0111\u1ee9ng \u0111\u1ed1i di\u1ec7n ngu\u1ed3n s\u00e1ng';\n    else{ok=true;msg='Tuy\u1ec7t! Gi\u1eef y\u00ean\u2026'}\n  }\n  \/\/ draw overlay\n  var g=ov.getContext('2d');g.clearRect(0,0,ov.width,ov.height);g.fillStyle='rgba(0,0,0,.45)';g.fillRect(0,0,ov.width,ov.height);\n  g.globalCompositeOperation='destination-out';g.beginPath();g.ellipse(cx,cy,ovW\/2,ovH\/2,0,0,7);g.fill();g.globalCompositeOperation='source-over';\n  g.lineWidth=4;g.strokeStyle=ok?'#2fd27a':'rgba(255,255,255,.85)';g.setLineDash(ok?[]:[10,8]);g.beginPath();g.ellipse(cx,cy,ovW\/2,ovH\/2,0,0,7);g.stroke();g.setLineDash([]);\n  g.strokeStyle=ok?'rgba(47,210,122,.7)':'rgba(245,196,81,.75)';g.lineWidth=2;g.setLineDash([6,6]);g.strokeRect(cx-Aw\/2,aTop,Aw,A);g.setLineDash([]);g.fillStyle='rgba(255,255,255,.75)';g.font='600 12px Montserrat,sans-serif';g.textAlign='center';g.fillText('Khung \u1ea3nh '+(d.id==='us'?'2\u00d72 inch':d.w\/10+'\u00d7'+d.h\/10+' cm')+' \u2014 gi\u1eef vai trong khung',cx,Math.min(r.height-8,aTop+A+18));g.textAlign='start';\n  g.strokeStyle='rgba(255,255,255,.35)';g.lineWidth=1;g.beginPath();g.moveTo(cx-ovW*0.32,cy-ovH*0.06);g.lineTo(cx+ovW*0.32,cy-ovH*0.06);g.stroke();\n  var m=$('kxMsg');m.textContent=msg;m.className='msg'+(ok?' ok':'');\n  if(ok&&CAM.auto){if(!CAM.okSince)CAM.okSince=now;var left=3-Math.floor((now-CAM.okSince)\/700);var c=$('kxCd');c.style.display='block';c.textContent=Math.max(1,left);if(left<=0){CAM.okSince=0;c.style.display='none';capture()}}\n  else{CAM.okSince=0;$('kxCd').style.display='none'}\n}\nfunction capture(){var v=$('kxVid');if(!v.videoWidth){toast('Camera ch\u01b0a s\u1eb5n s\u00e0ng');return}\n  var c=document.createElement('canvas');c.width=v.videoWidth;c.height=v.videoHeight;var x=c.getContext('2d');x.drawImage(v,0,0);\n  var f=$('kxFlash');f.style.opacity=.9;setTimeout(function(){f.style.opacity=0},120);\n  setTimeout(function(){closeCam();process(c,true)},180)}\n\/* ---------- processing ---------- *\/\nfunction canvasOf(w,h){var c=document.createElement('canvas');c.width=w;c.height=h;return c}\nfunction process(src,fromCam){\n  if(!D)pick('vn46',false);\n  var nw=src.naturalWidth||src.width,nh=src.naturalHeight||src.height,mx=2200,sc=Math.min(1,mx\/Math.max(nw,nh));\n  var c=canvasOf(Math.round(nw*sc),Math.round(nh*sc));c.getContext('2d').drawImage(src,0,0,c.width,c.height);\n  S={src:c,fromCam:fromCam};\n  busy(true,FL?'\u0110ang nh\u1eadn di\u1ec7n khu\u00f4n m\u1eb7t & t\u00e1ch n\u1ec1n\u2026':'\u0110ang t\u1ea3i b\u1ed9 AI mi\u1ec5n ph\u00ed (ch\u1ec9 l\u1ea7n \u0111\u1ea7u, ~20 MB)\u2026');\n  loadAI().then(function(){busy(true,'\u0110ang nh\u1eadn di\u1ec7n khu\u00f4n m\u1eb7t & t\u00e1ch n\u1ec1n\u2026');return new Promise(function(r){setTimeout(r,40)})}).then(function(){analyse(c)}).catch(function(err){busy(false);console.error(err);toast('Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c b\u1ed9 AI \u2014 ki\u1ec3m tra m\u1ea1ng r\u1ed3i th\u1eed l\u1ea1i')});\n}\nfunction analyse(c){\n  var fr;try{fr=FL.detect(c)}catch(e){busy(false);toast('L\u1ed7i x\u1eed l\u00fd \u1ea3nh \u2014 th\u1eed \u1ea3nh kh\u00e1c');return}\n  if(!fr.faceLandmarks||!fr.faceLandmarks.length){busy(false);toast('Kh\u00f4ng t\u00ecm th\u1ea5y khu\u00f4n m\u1eb7t \u2014 ch\u1ecdn \u1ea3nh ch\u1ee5p ch\u00ednh di\u1ec7n, r\u00f5 m\u1eb7t');go(2);return}\n  var warn=[];if(fr.faceLandmarks.length>1)warn.push(['w','C\u00f3 nhi\u1ec1u ng\u01b0\u1eddi trong \u1ea3nh \u2014 \u0111\u00e3 ch\u1ecdn ng\u01b0\u1eddi r\u00f5 nh\u1ea5t']);\n  var idx=0,best=0;fr.faceLandmarks.forEach(function(l,i){var xs=l.map(function(p){return p.x}),w=Math.max.apply(0,xs)-Math.min.apply(0,xs);if(w>best){best=w;idx=i}});\n  var LM=fr.faceLandmarks[idx],W=c.width,Hh=c.height,P=function(i){return {x:LM[i].x*W,y:LM[i].y*Hh}};\n  var gb=function(n){var cs=fr.faceBlendshapes&&fr.faceBlendshapes[idx];if(!cs)return 0;for(var i=0;i<cs.categories.length;i++)if(cs.categories[i].categoryName===n)return cs.categories[i].score;return 0};\n  var eL=mid(P(33),P(133)),eR=mid(P(362),P(263)),roll=Math.atan2(eR.y-eL.y,eR.x-eL.x),nose=P(1),em=mid(eL,eR),ed=dist(eL,eR);\n  var yaw=(nose.x-em.x)\/ed,chin0=P(152),pitch=(nose.y-em.y)\/Math.max(1,chin0.y-em.y);\n  var r=-roll,cx=em.x,cy=em.y,rc=canvasOf(W,Hh),rx=rc.getContext('2d');rx.translate(cx,cy);rx.rotate(r);rx.translate(-cx,-cy);rx.drawImage(c,0,0);\n  var tp=function(p){var dx=p.x-cx,dy=p.y-cy;return {x:cx+dx*Math.cos(r)-dy*Math.sin(r),y:cy+dx*Math.sin(r)+dy*Math.cos(r)}};\n  var F={eL:tp(eL),eR:tp(eR),chin:tp(chin0),top:tp(P(10)),lc:tp(P(234)),rc:tp(P(454)),nose:tp(nose),mouthL:tp(P(61)),mouthR:tp(P(291))};\n  var sr=SEG.segment(rc),ms=sr.confidenceMasks,mw=ms[0].width,mh=ms[0].height,bgM=ms[0].getAsFloat32Array();\n  var mk=canvasOf(mw,mh),mkx=mk.getContext('2d'),id=mkx.createImageData(mw,mh);\n  for(var i=0;i<mw*mh;i++){id.data[i*4]=id.data[i*4+1]=id.data[i*4+2]=255;id.data[i*4+3]=Math.round(Math.max(0,Math.min(1,1-bgM[i]))*255)}\n  mkx.putImageData(id,0,0);\n  var sx=mw\/rc.width,sy=mh\/rc.height,x0=Math.round((F.lc.x+(F.rc.x-F.lc.x)*.25)*sx),x1=Math.round((F.lc.x+(F.rc.x-F.lc.x)*.75)*sx),crown=null;\n  for(var y=0;y<Math.round(F.top.y*sy)&&crown===null;y++){var cnt=0;for(var x=x0;x<=x1;x++){if(1-bgM[y*mw+x]>.5)cnt++}if(cnt>Math.max(2,(x1-x0)*.05))crown=y\/sy}\n  if(crown!==null)crown=fineCrown(rc,F,crown,1\/sy);\n  if(crown===null)crown=F.top.y-(F.chin.y-F.top.y)*.28;\n  var fh=F.chin.y-F.top.y;if(F.top.y-crown>fh*.75)crown=F.top.y-fh*.45;\n  for(var k=0;k<ms.length;k++)ms[k].close&&ms[k].close();\n  \/\/ quality signals\n  var tone=faceTone(rc,F),shadow=sideLight(rc,F);\n  var q={roll:roll*180\/Math.PI,yaw:yaw,pitch:pitch,blink:Math.max(gb('eyeBlinkLeft'),gb('eyeBlinkRight')),jaw:gb('jawOpen'),smile:Math.max(gb('mouthSmileLeft'),gb('mouthSmileRight')),faceH:F.chin.y-crown,shadow:shadow,lum:tone.L};\n  S={src:c,rc:rc,mask:mk,face:F,crown:crown,tone:tone,q:q,warn:warn,fromCam:S.fromCam};\n  ['kxZoom','kxDy','kxDx','kxBri','kxTemp'].forEach(function(i){$(i).value=0;$(i).nextElementSibling.textContent='0'});\n  busy(false);maxStep=3;go(3);resetCount();render();\n}\n\/* 1.0 (01\/11\/2026) \u2013 \u0110\u1ec8NH T\u00d3C CH\u00cdNH X\u00c1C: m\u1eb7t n\u1ea1 256 px ch\u1ec9 cho v\u1ecb tr\u00ed th\u00f4 (\u00b11 h\u00e0ng = v\u00e0i px \u1ea3nh g\u1ed1c).\n   D\u00f2 l\u1ea1i \u1edf \u1ea3nh g\u1ed1c: d\u1ea3i gi\u1eefa m\u1eb7t (20\u201380% b\u1ec1 ngang m\u1eb7t), m\u00e0u n\u1ec1n l\u1ea5y ngay ph\u00eda tr\u00ean, h\u00e0ng \u0111\u1ea7u ti\u00ean c\u00f3 \u22651% \u0111i\u1ec3m kh\u00e1c n\u1ec1n r\u00f5 r\u1ec7t = \u0111\u1ec9nh t\u00f3c.\n   Ch\u1ec9 nh\u1eadn k\u1ebft qu\u1ea3 n\u1ebfu n\u1eb1m trong \u00b13 h\u00e0ng m\u1eb7t n\u1ea1 quanh v\u1ecb tr\u00ed th\u00f4 (tr\u00e1nh n\u1ec1n r\u1ed1i). *\/\nfunction fineCrown(rc,F,c0,mr){try{var W=rc.width,x0=Math.max(0,Math.round(F.lc.x+(F.rc.x-F.lc.x)*.2)),x1=Math.min(W-1,Math.round(F.lc.x+(F.rc.x-F.lc.x)*.8)),bw=x1-x0+1;\n  var yA=Math.max(0,Math.floor(c0-3*mr)),yB=Math.min(Math.round(F.top.y),Math.ceil(c0+3*mr)),bg0=Math.max(0,Math.floor(yA-6*mr)),bg1=Math.max(bg0+2,Math.floor(yA-1));\n  if(yB<=yA)return c0;var d=rc.getContext('2d').getImageData(x0,bg0,bw,yB-bg0+1).data,row=function(y){return (y-bg0)*bw*4};\n  var R=[],G=[],B=[];for(var y=bg0;y<Math.min(bg1,yA);y++)for(var x=0;x<bw;x+=2){var i=row(y)+x*4;R.push(d[i]);G.push(d[i+1]);B.push(d[i+2])}\n  if(R.length<20)return c0;var md=function(a){a.sort(function(p,q){return p-q});return a[a.length>>1]},br=md(R),bgG=md(G),bb=md(B);\n  for(y=yA;y<=yB;y++){var n=0;for(x=0;x<bw;x++){var j=row(y)+x*4;if(Math.abs(d[j]-br)+Math.abs(d[j+1]-bgG)+Math.abs(d[j+2]-bb)>60)n++}if(n>=Math.max(2,bw*.01))return y}\n  return c0}catch(e){return c0}}\nfunction faceTone(c,F){var x0=Math.round(F.lc.x+(F.rc.x-F.lc.x)*.25),x1=Math.round(F.lc.x+(F.rc.x-F.lc.x)*.75),y0=Math.round(F.eL.y+(F.chin.y-F.eL.y)*.15),y1=Math.round(F.eL.y+(F.chin.y-F.eL.y)*.55);\n  var w=Math.max(1,x1-x0),h=Math.max(1,y1-y0),d=c.getContext('2d').getImageData(Math.max(0,x0),Math.max(0,y0),w,h).data,r=0,g=0,b=0,n=0,L=[];\n  for(var i=0;i<d.length;i+=16){r+=d[i];g+=d[i+1];b+=d[i+2];n++;L.push(.299*d[i]+.587*d[i+1]+.114*d[i+2])}\n  r\/=n;g\/=n;b\/=n;L.sort(function(a,b){return a-b});return {r:r,g:g,b:b,L:L[Math.floor(L.length*.5)]}}\nfunction sideLight(c,F){var ew=F.eR.x-F.eL.x,y0=Math.round(F.eL.y+ew*.25),h=Math.max(2,Math.round(ew*.45)),w=Math.max(2,Math.round(ew*.45)),x=c.getContext('2d');\n  var avg=function(x0){var d=x.getImageData(Math.max(0,Math.round(x0)),Math.max(0,y0),w,h).data,s=0;for(var i=0;i<d.length;i+=4)s+=.299*d[i]+.587*d[i+1]+.114*d[i+2];return s\/(d.length\/4)};\n  var a=avg(F.eL.x-w*.6),b=avg(F.eR.x-w*.4);return Math.abs(a-b)\/Math.max(30,(a+b)\/2)}\n\/* ---------- render ---------- *\/\nvar OUT=$('kxOut'),BF=$('kxBf'),GD=$('kxGd');\nfunction mm2px(mm){return Math.round(mm\/25.4*300)}\nfunction P(){var v=function(i){return +$(i).value};return {zoom:v('kxZoom'),dy:v('kxDy'),dx:v('kxDx'),bri:v('kxBri'),temp:v('kxTemp'),feather:v('kxFeather')}}\nfunction render(){\n  if(!S.rc||!D)return;var d=D,p=P(),F=S.face;\n  var W=mm2px(d.w),Hh=mm2px(d.h);OUT.width=BF.width=W;OUT.height=BF.height=Hh;\n  var headMM=Math.min(d.b-.5,Math.max(d.a+.5,(d.a+d.b)\/2*(1+p.zoom\/100))),scale=mm2px(headMM)\/(F.chin.y-S.crown);\n  var topMM=d.top?(d.top[0]+d.top[1])\/2:Math.max(3,Math.min(5,(d.h-headMM)*.3));if(topMM>d.h-headMM-2)topMM=Math.max(1,(d.h-headMM)*.3);\n  if(d.eye){var eOff=((F.eL.y+F.eR.y)\/2-S.crown)\/(F.chin.y-S.crown)*headMM;topMM=(d.h-(d.eye[0]+d.eye[1])\/2)-eOff}\n  topMM+=p.dy*-.4;\n  if(d.top)topMM=Math.min(d.top[1]-.2,Math.max(d.top[0]+.2,topMM));\n  if(d.eye){var eO=((F.eL.y+F.eR.y)\/2-S.crown)\/(F.chin.y-S.crown)*headMM;topMM=Math.min(d.h-d.eye[0]-.3-eO,Math.max(d.h-d.eye[1]+.3-eO,topMM))}\n  topMM=Math.max(2,Math.min(d.h-headMM-2,topMM));if(d.eye){var eO2=((F.eL.y+F.eR.y)\/2-S.crown)\/(F.chin.y-S.crown)*headMM;topMM=Math.min(d.h-d.eye[0]-.3-eO2,Math.max(d.h-d.eye[1]+.3-eO2,topMM))}\n  var cxs=(F.eL.x+F.eR.x)\/2+(F.nose.x-(F.eL.x+F.eR.x)\/2)*.3;\n  var tx=W\/2-cxs*scale+mm2px(p.dx*.4),ty=mm2px(topMM)-S.crown*scale;\n  S.geo={scale:scale,tx:tx,ty:ty,headMM:headMM,topMM:topMM};\n  \/\/ before (original crop)\n  var bx=BF.getContext('2d');bx.fillStyle='#888';bx.fillRect(0,0,W,Hh);bx.setTransform(scale,0,0,scale,tx,ty);bx.imageSmoothingQuality='high';bx.drawImage(S.rc,0,0);bx.setTransform(1,0,0,1,0,0);\n  \/\/ person\n  var pc=canvasOf(W,Hh),px=pc.getContext('2d');px.setTransform(scale,0,0,scale,tx,ty);px.imageSmoothingQuality='high';px.drawImage(S.rc,0,0);px.setTransform(1,0,0,1,0,0);\n  var sb=S.rc.height*scale+ty,chY=F.chin.y*scale+ty,canExt=sb<Hh&&(Hh-sb)<=Hh*0.16&&(sb-chY)>(F.chin.y-S.crown)*scale*0.3;S.extended=canExt;S.badCut=sb<Hh-2&&!canExt;if(canExt){var ext=function(cx2,src,k){cx2.drawImage(src,0,src.height-Math.max(1,Math.round(2\/k)),src.width,Math.max(1,Math.round(2\/k)),tx,sb-1,src.width*scale*k,Hh-sb+1)};ext(px,S.rc,1);ext(bx,S.rc,1)}\n  var T=S.tone,gain=1,wr=1,wg=1,wb=1;\n  if($('kxAuto').checked&&T){gain=Math.max(.8,Math.min(1.5,168\/Math.max(40,T.L)));var avg=(T.r+T.g+T.b)\/3;wr=Math.pow(1.13\/(T.r\/avg),.35);wg=Math.pow(1\/(T.g\/avg),.35);wb=Math.pow(.86\/(T.b\/avg),.35)}\n  gain*=1+p.bri\/100;wr*=1+p.temp\/250;wb*=1-p.temp\/250;\n  if(gain!==1||wr!==1||wb!==1||wg!==1){var im=px.getImageData(0,0,W,Hh),dd=im.data,lr=[],lg=[],lb=[];\n    for(var i=0;i<256;i++){var yv=1-Math.pow(1-i\/255,gain);lr[i]=Math.min(255,Math.round(255*Math.min(1,yv*wr)));lg[i]=Math.min(255,Math.round(255*Math.min(1,yv*wg)));lb[i]=Math.min(255,Math.round(255*Math.min(1,yv*wb)))}\n    for(i=0;i<dd.length;i+=4){dd[i]=lr[dd[i]];dd[i+1]=lg[dd[i+1]];dd[i+2]=lb[dd[i+2]]}px.putImageData(im,0,0)}\n  if($('kxSmooth').checked){var fx=F.lc.x*scale+tx,fy=S.crown*scale+ty,fw=(F.rc.x-F.lc.x)*scale,fh2=(F.chin.y-S.crown)*scale;\n    var bl=canvasOf(W,Hh),blx=bl.getContext('2d');blx.filter='blur('+Math.max(1,W\/420)+'px)';blx.drawImage(pc,0,0);\n    var m2c=canvasOf(W,Hh),m2=m2c.getContext('2d'),gr=m2.createRadialGradient(fx+fw\/2,fy+fh2*.62,fw*.12,fx+fw\/2,fy+fh2*.62,fw*.55);gr.addColorStop(0,'rgba(0,0,0,.42)');gr.addColorStop(1,'rgba(0,0,0,0)');m2.fillStyle=gr;m2.fillRect(0,0,W,Hh);\n    m2.globalCompositeOperation='destination-out';[F.eL,F.eR].forEach(function(e){m2.beginPath();m2.ellipse(e.x*scale+tx,e.y*scale+ty,fw*.14,fw*.08,0,0,7);m2.fill()});m2.beginPath();m2.ellipse((F.mouthL.x+F.mouthR.x)\/2*scale+tx,(F.mouthL.y+F.mouthR.y)\/2*scale+ty,fw*.2,fw*.09,0,0,7);m2.fill();\n    m2.globalCompositeOperation='source-in';m2.drawImage(bl,0,0);px.drawImage(m2c,0,0)}\n  var mc=canvasOf(W,Hh),mcx=mc.getContext('2d'),msc=S.rc.width\/S.mask.width;mcx.setTransform(scale*msc,0,0,scale*msc,tx,ty);mcx.imageSmoothingQuality='high';mcx.drawImage(S.mask,0,0);mcx.setTransform(1,0,0,1,0,0);if(canExt)mcx.drawImage(S.mask,0,S.mask.height-1,S.mask.width,1,tx,sb-1,S.mask.width*scale*msc,Hh-sb+1);\n  var md=mcx.getImageData(0,0,W,Hh),m=md.data;for(i=3;i<m.length;i+=4){var a=m[i]\/255;a=(a-.32)\/.4;a=a<0?0:a>1?1:a*a*(3-2*a);m[i]=a*255}mcx.putImageData(md,0,0);\n  if(p.feather>0){var fc=canvasOf(W,Hh),fcx=fc.getContext('2d');fcx.filter='blur('+(p.feather*W\/600)+'px)';fcx.drawImage(mc,0,0);mc=fc}\n  px.globalCompositeOperation='destination-in';px.drawImage(mc,0,0);px.globalCompositeOperation='source-over';\n  var o=OUT.getContext('2d');o.clearRect(0,0,W,Hh);if(bgCol!=='transparent'){o.fillStyle=bgCol;o.fillRect(0,0,W,Hh)}o.drawImage(pc,0,0);\n  S.cutBottom=(S.rc.height*scale+ty)<Hh-2;\n  $('kxMeta').textContent=(d.id==='us'?'2\u00d72 inch':d.w+'\u00d7'+d.h+' mm')+' \u00b7 '+W+'\u00d7'+Hh+' px \u00b7 300 dpi';\n  try{setTimeout(function(){$('kxDlSn').textContent=sheetN().n;$('kxDlA4n').textContent=sheetN(true).n},50)}catch(e){}try{$('kxDlMix').hidden=!(d.id==='vn46'||d.id==='vn34')}catch(e){}$('kxDl1s').textContent='('+(d.id==='us'?'2\u00d72\"':d.w\/10+'\u00d7'+d.h\/10)+')';\n  guide();checks();$('kxEdT').textContent=d.f+' '+d.n;fit();\n}\nvar showGuide=false,cmp=true;\nfunction guide(){GD.width=OUT.width;GD.height=OUT.height;var g=GD.getContext('2d');g.clearRect(0,0,GD.width,GD.height);if(!showGuide)return;\n  var k=GD.height\/D.h,top=S.geo.topMM*k,ch=(S.geo.topMM+S.geo.headMM)*k,lw=Math.max(2,GD.width\/220);\n  g.fillStyle='rgba(47,210,122,.14)';g.fillRect(0,(S.geo.topMM+S.geo.headMM-D.b)*0+((S.geo.topMM+S.geo.headMM)-D.b)*k,GD.width,0);\n  g.strokeStyle='rgba(30,120,255,.95)';g.lineWidth=lw;g.setLineDash([lw*4,lw*3]);\n  [[top,'\u0110\u1ec9nh t\u00f3c'],[ch,'C\u1eb1m']].forEach(function(l){g.beginPath();g.moveTo(0,l[0]);g.lineTo(GD.width,l[0]);g.stroke();g.fillStyle='rgba(30,120,255,.95)';g.font='700 '+Math.round(GD.width\/22)+'px Montserrat,sans-serif';g.fillText(l[1],lw*3,l[0]-lw*2)});\n  g.setLineDash([]);g.strokeStyle='rgba(255,255,255,.6)';g.lineWidth=lw\/2;g.beginPath();g.moveTo(GD.width\/2,0);g.lineTo(GD.width\/2,GD.height);g.stroke();\n  if(D.eye){g.fillStyle='rgba(47,210,122,.22)';g.fillRect(0,(D.h-D.eye[1])*k,GD.width,(D.eye[1]-D.eye[0])*k)}}\nfunction checks(){var d=D,q=S.q,h=(S.face.chin.y-S.crown)*S.geo.scale\/(300\/25.4),L=[];S.geo.realHead=h;\n  L.push(h>=d.a&&h<=d.b?['','C\u1eb1m \u2192 \u0111\u1ec9nh t\u00f3c '+h.toFixed(1)+' mm (chu\u1ea9n '+d.a+'\u2013'+d.b+')']:['x','C\u1eb1m \u2192 \u0111\u1ec9nh t\u00f3c '+h.toFixed(1)+' mm \u2014 chu\u1ea9n '+d.a+'\u2013'+d.b+' mm']);\n  var tp0=(S.crown*S.geo.scale+S.geo.ty)\/(300\/25.4);if(!d.top)L.push(tp0>=1.8?['','\u0110\u1ec9nh t\u00f3c c\u00e1ch m\u00e9p tr\u00ean '+tp0.toFixed(1)+' mm']:['x','\u0110\u1ec9nh t\u00f3c s\u00e1t m\u00e9p tr\u00ean ('+tp0.toFixed(1)+' mm) \u2014 k\u00e9o \u1ea3nh xu\u1ed1ng']);\n  if(d.top){var tp=tp0;L.push(tp>=d.top[0]&&tp<=d.top[1]?['','\u0110\u1ec9nh t\u00f3c c\u00e1ch m\u00e9p tr\u00ean '+tp.toFixed(1)+' mm']:['x','\u0110\u1ec9nh t\u00f3c c\u00e1ch m\u00e9p tr\u00ean '+tp.toFixed(1)+' mm (chu\u1ea9n '+d.top[0]+'\u2013'+d.top[1]+')'])}\n  L.push(['','\u0110\u00e3 t\u00e1ch n\u1ec1n & thay n\u1ec1n m\u1edbi']);\n  L.push(Math.abs(q.roll)<.4?['','\u0110\u1ea7u th\u1eb3ng']:['','\u0110\u00e3 c\u00e2n th\u1eb3ng \u0111\u1ea7u ('+q.roll.toFixed(1)+'\u00b0)']);\n  L.push(Math.abs(q.yaw)<.1?['','Nh\u00ecn th\u1eb3ng \u1ed1ng k\u00ednh']:['w','M\u1eb7t h\u01a1i xoay sang b\u00ean \u2014 n\u00ean ch\u1ee5p nh\u00ecn th\u1eb3ng']);\n  L.push(q.pitch>.3&&q.pitch<.65?['','C\u1eb1m ngang t\u1ea7m']:['w',q.pitch<=.3?'C\u1eb1m h\u01a1i ng\u1ea9ng cao':'C\u1eb1m h\u01a1i c\u00fai th\u1ea5p']);\n  L.push(q.blink<.5?['','M\u1eaft m\u1edf r\u00f5']:['x','M\u1eaft \u0111ang nh\u1eafm\/h\u00edp \u2014 ch\u1ee5p l\u1ea1i']);\n  L.push(q.jaw<.18&&(!d.strict||q.smile<.55)?['','Mi\u1ec7ng kh\u00e9p, bi\u1ec3u c\u1ea3m t\u1ef1 nhi\u00ean']:['w',q.jaw>=.18?'Mi\u1ec7ng \u0111ang m\u1edf \u2014 n\u00ean kh\u00e9p mi\u1ec7ng':'C\u01b0\u1eddi h\u01a1i nhi\u1ec1u \u2014 chu\u1ea9n n\u00e0y y\u00eau c\u1ea7u bi\u1ec3u c\u1ea3m trung t\u00ednh']);\n  L.push(q.shadow<.22?['','\u00c1nh s\u00e1ng \u0111\u1ec1u hai b\u00ean m\u1eb7t']:['w','M\u1eb7t b\u1ecb b\u00f3ng m\u1ed9t b\u00ean \u2014 n\u00ean \u0111\u1ee9ng \u0111\u1ed1i di\u1ec7n ngu\u1ed3n s\u00e1ng']);\n  L.push(q.lum>70?['','\u0110\u1ee7 s\u00e1ng']:['w','\u1ea2nh g\u1ed1c h\u01a1i t\u1ed1i \u2014 \u0111\u00e3 t\u1ef1 t\u0103ng s\u00e1ng']);\n  var px=q.faceH;L.push(px>=280?['','\u0110\u1ed9 ph\u00e2n gi\u1ea3i t\u1ed1t']:['w','\u1ea2nh g\u1ed1c h\u01a1i nh\u1ecf\/m\u1edd \u2014 n\u00ean ch\u1ee5p g\u1ea7n h\u01a1n']);\n  if(S.extended)L.push(['w','\u1ea2nh g\u1ed1c h\u01a1i thi\u1ebfu vai \u2014 m\u00e1y \u0111\u00e3 t\u1ef1 b\u00f9, l\u1ea7n sau \u0111\u1ee9ng l\u00f9i xa h\u01a1n']);else if(S.badCut)L.push(['x','\u1ea2nh g\u1ed1c thi\u1ebfu vai \/ ng\u1ef1c \u2014 ch\u1ee5p l\u1ea1i \u0111\u1ee9ng xa h\u01a1n, th\u1ea5y r\u00f5 c\u1ea3 hai vai']);\n  if(d.eye){var eye=d.h-(S.geo.topMM+((S.face.eL.y+S.face.eR.y)\/2-S.crown)*h\/(S.face.chin.y-S.crown));L.push(eye>=d.eye[0]&&eye<=d.eye[1]?['','M\u1eaft c\u00e1ch \u0111\u00e1y '+eye.toFixed(0)+' mm']:['x','M\u1eaft c\u00e1ch \u0111\u00e1y '+eye.toFixed(0)+' mm (chu\u1ea9n '+d.eye[0]+'\u2013'+d.eye[1]+')'])}\n  S.warn.forEach(function(w){L.push(w)});\n  var good=L.filter(function(x){return !x[0]}).length,bad=L.filter(function(x){return x[0]==='x'}).length,pct=Math.round(good\/L.length*100);\n  $('kxScore').style.setProperty('--v','0');\n  $('kxScore').innerHTML='<div class=\"ring\" style=\"--v:'+pct+'%\"><span>'+good+'\/'+L.length+'<\/span><\/div><div><b>'+(bad?'C\u1ea7n ch\u1ee5p l\u1ea1i \u0111\u1ec3 \u0111\u1ea1t chu\u1ea9n':good===L.length?'\u1ea2nh \u0111\u1ea1t chu\u1ea9n \u2014 s\u1eb5n s\u00e0ng t\u1ea3i v\u1ec1':'G\u1ea7n \u0111\u1ea1t \u2014 xem g\u1ee3i \u00fd b\u00ean d\u01b0\u1edbi')+'<\/b><small>'+(bad?'C\u00f3 m\u1ee5c ch\u01b0a \u0111\u1ea1t (\u2715). B\u1ea5m \"\u1ea2nh kh\u00e1c\" \u0111\u1ec3 ch\u1ee5p l\u1ea1i.':'M\u00e1y \u0111\u00e3 t\u1ef1 c\u0103n ch\u1ec9nh theo chu\u1ea9n '+D.n+'.')+'<\/small>'+(good<L.length?'<a class=\"kx-up\" href=\"\/chup-anh-the-passport-visa\/?tu=anh-the-online-'+(bad?'chua-dat':'gan-dat')+'\">'+(bad?'Kh\u00f4ng mu\u1ed1n ch\u1ee5p l\u1ea1i? ':'Mu\u1ed1n ch\u1eafc ch\u1eafn \u0111\u1ea1t? ')+'Ch\u1ee5p t\u1ea1i studio K-BLACK, l\u1ea5y ngay \u00b7 t\u1eeb 150K \u203a<\/a>':'')+'<\/div>';\n  var bd=$('kxBadge');bd.className='kx-badge'+(bad?' x':good===L.length?'':' w');bd.innerHTML='<i>'+(bad?'\u2715':good===L.length?'\u2713':'!')+'<\/i><span>'+good+'\/'+L.length+'<b> \u00b7 '+(bad?'Ch\u01b0a \u0111\u1ea1t':good===L.length?'\u0110\u1ea1t chu\u1ea9n':'G\u1ea7n \u0111\u1ea1t')+'<\/b><\/span>';\n  $('kxChk').innerHTML=L.map(function(x){var t=x[0]?fixTip(x[1]):'';return '<li class=\"'+x[0]+'\"><span>'+x[1]+(t?'<small class=\"kx-fix\">C\u00e1ch s\u1eeda: '+t+'<\/small>':'')+'<\/span><\/li>'}).join('')}\nfunction fixTip(m){var T=[[\/xoay\/,'\u0111\u1eb7t \u0111i\u1ec7n tho\u1ea1i ngang t\u1ea7m m\u1eaft, xoay ng\u01b0\u1eddi th\u1eb3ng v\u1ec1 ph\u00eda \u1ed1ng k\u00ednh.'],[\/ng\u1ea9ng\/,'h\u1ea1 c\u1eb1m xu\u1ed1ng m\u1ed9t ch\u00fat, c\u1eb1m song song m\u1eb7t \u0111\u1ea5t.'],[\/c\u00fai\/,'n\u00e2ng c\u1eb1m l\u00ean m\u1ed9t ch\u00fat, m\u1eaft nh\u00ecn th\u1eb3ng \u1ed1ng k\u00ednh.'],[\/nh\u1eafm|h\u00edp\/,'m\u1edf m\u1eaft t\u1ef1 nhi\u00ean, ch\u1ee5p l\u1ea1i khi kh\u00f4ng ch\u1edbp m\u1eaft.'],[\/Mi\u1ec7ng \u0111ang m\u1edf\/,'kh\u00e9p m\u00f4i nh\u1eb9 nh\u00e0ng, th\u1ea3 l\u1ecfng c\u01a1 m\u1eb7t.'],[\/C\u01b0\u1eddi\/,'gi\u1eef bi\u1ec3u c\u1ea3m t\u1ef1 nhi\u00ean, kh\u00f4ng c\u01b0\u1eddi l\u1ed9 r\u0103ng.'],[\/b\u00f3ng m\u1ed9t b\u00ean\/,'\u0111\u1ee9ng \u0111\u1ed1i di\u1ec7n c\u1eeda s\u1ed5 ho\u1eb7c \u0111\u00e8n, kh\u00f4ng \u0111\u1ec3 ngu\u1ed3n s\u00e1ng \u1edf m\u1ed9t b\u00ean.'],[\/t\u1ed1i\/,'ch\u1ee5p g\u1ea7n c\u1eeda s\u1ed5 ban ng\u00e0y ho\u1eb7c b\u1eadt th\u00eam \u0111\u00e8n ph\u00eda tr\u01b0\u1edbc m\u1eb7t.'],[\/nh\u1ecf|m\u1edd\/,'\u0111\u01b0a camera l\u1ea1i g\u1ea7n, gi\u1eef m\u00e1y ch\u1eafc tay, lau \u1ed1ng k\u00ednh.'],[\/thi\u1ebfu vai\/,'l\u00f9i xa camera, \u0111\u1ec3 th\u1ea5y r\u00f5 c\u1ea3 hai vai v\u00e0 ph\u1ea7n ng\u1ef1c.'],[\/\u0110\u1ea7u [0-9.]+ mm\/,'b\u1ea5m tab C\u0103n khung, k\u00e9o thanh C\u1ee1 \u0111\u1ea7u ho\u1eb7c b\u1ea5m C\u0103n l\u1ea1i t\u1ef1 \u0111\u1ed9ng.'],[\/M\u1eaft c\u00e1ch \u0111\u00e1y\/,'b\u1ea5m tab C\u0103n khung, d\u00f9ng n\u00fat L\u00ean\/Xu\u1ed1ng \u0111\u1ec3 d\u1eddi \u1ea3nh.'],[\/k\u00ednh\/,'th\u00e1o k\u00ednh ho\u1eb7c nghi\u00eang nh\u1eb9 \u0111\u1ec3 tr\u00e1nh lo\u00e1.']];for(var i=0;i<T.length;i++)if(T[i][0].test(m))return T[i][1];return ''}\nvar want=99;function resetCount(){want=99}\n\/* ---------- export ---------- *\/\nfunction jpeg300(canvas,cb){canvas.toBlob(function(b){b.arrayBuffer().then(function(buf){var u=new Uint8Array(buf);if(u[2]===0xFF&&u[3]===0xE0&&u[6]===0x4A&&u[7]===0x46){u[13]=1;u[14]=1;u[15]=44;u[16]=1;u[17]=44}cb(new Blob([u],{type:'image\/jpeg'}))})},'image\/jpeg',.95)}\nfunction save(blob,name){var a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download=name;document.body.appendChild(a);a.click();setTimeout(function(){URL.revokeObjectURL(a.href);a.remove()},1500);toast('\u0110\u00e3 t\u1ea3i v\u1ec1: '+name)}\nfunction fname(ext,suf){return 'KBLACK-anh-the-'+D.id+'-'+D.w+'x'+D.h+(suf||'')+'.'+ext}\n$('kxDl1').onclick=function(){jpeg300(OUT,function(b){save(b,fname('jpg'))})};\n$('kxDl1b').onclick=function(){$('kxDl1').click()};\nfunction sheetN(A4){var W=A4?3508:1800,Hh=A4?2480:1200,m=A4?90:36,g=24,w=OUT.width,hh=OUT.height,f=function(A,B){return Math.max(0,Math.floor((A-2*m+g)\/(w+g)))*Math.max(0,Math.floor((B-2*m-40+g)\/(hh+g)))},a=f(W,Hh),b=f(Hh,W);return a>=b?{n:a,W:W,H:Hh}:{n:b,W:Hh,H:W}}\nfunction sheet(A4){A4=A4===true;var s=sheetN(A4),KN=A4?'A4':'10\u00d715';if(!s.n){toast('\u1ea2nh l\u1edbn h\u01a1n kh\u1ed5 '+KN);return}var c=canvasOf(s.W,s.H),x=c.getContext('2d'),w=OUT.width,hh=OUT.height,m=36,g=24,cols=Math.floor((s.W-2*m+g)\/(w+g)),rows=Math.floor((s.H-2*m-40+g)\/(hh+g)),ox=Math.round((s.W-cols*w-(cols-1)*g)\/2),oy=Math.round((s.H-40-rows*hh-(rows-1)*g)\/2);x.fillStyle='#fff';x.fillRect(0,0,s.W,s.H);\n for(var r=0;r<rows;r++)for(var k=0;k<cols;k++){var px=ox+k*(w+g),py=oy+r*(hh+g);x.drawImage(OUT,px,py);x.strokeStyle='rgba(0,0,0,.35)';x.lineWidth=2;var L=Math.min(18,g*.75);[[px,py,-1,-1],[px+w,py,1,-1],[px,py+hh,-1,1],[px+w,py+hh,1,1]].forEach(function(c){x.beginPath();x.moveTo(c[0]+c[2]*2,c[1]);x.lineTo(c[0]+c[2]*(2+L),c[1]);x.moveTo(c[0],c[1]+c[3]*2);x.lineTo(c[0],c[1]+c[3]*(2+L));x.stroke()})}\n x.fillStyle='#8a8f99';x.font='500 22px Montserrat,Arial,sans-serif';x.textAlign='center';x.fillText(D.n+' \u00b7 '+(D.w\/10)+'\u00d7'+(D.h\/10)+' cm \u00b7 '+s.n+' \u1ea3nh \u00b7 in 100% (Actual size) kh\u1ed5 '+(A4?'A4':'10\u00d715 (4\u00d76 inch)')+' \u00b7 c\u1eaft theo v\u1ea1ch \u00b7 kblack.vn',s.W\/2,s.H-22);\n jpeg300(c,function(b){save(b,fname('jpg','-kho-'+(A4?'A4':'10x15')+'-'+s.n+'anh'))})}\nfunction webJpg(){var c=OUT,d=D;if(d.id==='us'){c=canvasOf(600,600);c.getContext('2d').drawImage(OUT,0,0,600,600)}var q=.92;(function tr(){c.toBlob(function(b){if(b.size>240*1024&&q>.4){q-=.07;tr()}else save(b,fname('jpg','-nop-online-'+Math.round(b.size\/1024)+'KB'))},'image\/jpeg',q)})()}\n$('kxDlS').onclick=function(){sheet(false)};\nfunction mixSheet(){var keep=D,b=DOCS.filter(function(x){return x.id==='vn46'||x.id==='vn34'});var c46,c34;\n try{b.forEach(function(d){D=d;render();var c=canvasOf(OUT.width,OUT.height);c.getContext('2d').drawImage(OUT,0,0);if(d.id==='vn46')c46=c;else c34=c})}finally{D=keep;render()}\n var W=1800,H=1200,m=36,g=24,c=canvasOf(W,H),x=c.getContext('2d');x.fillStyle='#fff';x.fillRect(0,0,W,H);\n var tot=2*c46.width+g+g+2*c34.width+g,ox=Math.round((W-tot)\/2),oy=Math.round((H-40-c46.height)\/2),oy2=Math.round((H-40-(2*c34.height+g))\/2),P=[];\n P.push([c46,ox,oy],[c46,ox+c46.width+g,oy]);var bx=ox+2*c46.width+2*g;\n for(var r=0;r<2;r++)for(var k=0;k<2;k++)P.push([c34,bx+k*(c34.width+g),oy2+r*(c34.height+g)]);\n P.forEach(function(p){var im=p[0],px=p[1],py=p[2],w=im.width,hh=im.height;x.drawImage(im,px,py);x.strokeStyle='rgba(0,0,0,.35)';x.lineWidth=2;var L=18;[[px,py,-1,-1],[px+w,py,1,-1],[px,py+hh,-1,1],[px+w,py+hh,1,1]].forEach(function(q){x.beginPath();x.moveTo(q[0]+q[2]*2,q[1]);x.lineTo(q[0]+q[2]*(2+L),q[1]);x.moveTo(q[0],q[1]+q[3]*2);x.lineTo(q[0],q[1]+q[3]*(2+L));x.stroke()})});\n x.fillStyle='#8a8f99';x.font='500 22px Montserrat,Arial,sans-serif';x.textAlign='center';x.fillText('2 \u1ea3nh 4\u00d76 + 4 \u1ea3nh 3\u00d74 \u00b7 in 100% (Actual size) kh\u1ed5 10\u00d715 (4\u00d76 inch) \u00b7 c\u1eaft theo v\u1ea1ch \u00b7 kblack.vn',W\/2,H-22);\n jpeg300(c,function(bl){save(bl,'KBLACK-anh-the-ghep-4x6-3x4-kho-10x15.jpg')})}\n$('kxDlMix').onclick=mixSheet;$('kxDlA4').onclick=function(){sheet(true)};\n(function(){var b=$('kxShare');try{var t=new File([new Blob(['x'],{type:'image\/jpeg'})],'t.jpg',{type:'image\/jpeg'});if(navigator.canShare&&navigator.canShare({files:[t]}))b.hidden=false}catch(e){}\n b.onclick=function(){jpeg300(OUT,function(bl){var f=new File([bl],fname('jpg'),{type:'image\/jpeg'});navigator.share({files:[f],title:'\u1ea2nh th\u1ebb '+D.n,text:'\u1ea2nh th\u1ebb '+D.n+' '+(D.w\/10)+'\u00d7'+(D.h\/10)+' cm \u2013 in 100% \u0111\u00fang k\u00edch th\u01b0\u1edbc. L\u00e0m mi\u1ec5n ph\u00ed t\u1ea1i kblack.vn\/anh-the-online'}).catch(function(){})})}})();$('kxDlW').onclick=webJpg;\n$('kxDl3').onclick=function(){var keep=bgCol;bgCol='transparent';render();OUT.toBlob(function(b){save(b,fname('png','-nen-trong'));bgCol=keep;render()},'image\/png')};\n\/* ---------- controls ---------- *\/\n['kxZoom','kxDy','kxDx','kxBri','kxTemp','kxFeather'].forEach(function(i){$(i).addEventListener('input',function(){this.nextElementSibling.textContent=this.value;rq()})});\n['kxAuto','kxSmooth'].forEach(function(i){$(i).addEventListener('change',rq)});\nvar raf=0;function rq(){if(raf)return;raf=requestAnimationFrame(function(){raf=0;render()})}\n$('kxRetake').onclick=function(){go(2)};$('kxNew').onclick=function(){go(2)};\n$('kxGuideBtn').onclick=function(){showGuide=!showGuide;this.classList.toggle('on',showGuide);guide()};\nvar fr=$('kxFrame');\n(function(){var b=$('kxCmp'),on=function(e){e.preventDefault();fr.classList.add('orig')},off=function(){fr.classList.remove('orig')};b.addEventListener('pointerdown',on);['pointerup','pointerleave','pointercancel'].forEach(function(t){b.addEventListener(t,off)});b.addEventListener('contextmenu',function(e){e.preventDefault()})})();\nfunction tabTo(k){[].forEach.call($('kxTabs').children,function(b){b.classList.toggle('on',b.dataset.t===k)});[].forEach.call(document.querySelectorAll('#kx .kx-tp'),function(p){p.classList.toggle('on',p.dataset.p===k)})}\n[].forEach.call($('kxTabs').children,function(b){b.onclick=function(){tabTo(b.dataset.t)}});\n$('kxBadge').onclick=function(){tabTo('chk')};\nfunction setV(id,v){var e=$(id);v=Math.max(+e.min,Math.min(+e.max,v));e.value=v;if(e.nextElementSibling)e.nextElementSibling.textContent=Math.round(v*10)\/10;rq()}\n[].forEach.call(document.querySelectorAll('#kx .kx-nud button'),function(b){b.onclick=function(){var p=b.dataset.n.split(',');setV(p[0]==='dy'?'kxDy':'kxDx',+$(p[0]==='dy'?'kxDy':'kxDx').value+(+p[1]))}});\n$('kxReset').onclick=function(){['kxZoom','kxDy','kxDx'].forEach(function(i){setV(i,0)})};\n\/\/ drag to move, pinch \/ wheel to zoom\nvar pts={},g0=null;\nfunction snap(){var k=Object.keys(pts);g0={dx:+$('kxDx').value,dy:+$('kxDy').value,z:+$('kxZoom').value,n:k.length};if(k.length===2){var a=pts[k[0]],b=pts[k[1]];g0.d=Math.hypot(a.x-b.x,a.y-b.y)}else if(k.length===1){g0.x=pts[k[0]].x;g0.y=pts[k[0]].y}}\nfr.addEventListener('pointerdown',function(e){if(!S.rc)return;pts[e.pointerId]={x:e.clientX,y:e.clientY};try{fr.setPointerCapture(e.pointerId)}catch(_){}snap()});\nfr.addEventListener('pointermove',function(e){if(!pts[e.pointerId]||!g0)return;pts[e.pointerId]={x:e.clientX,y:e.clientY};var k=Object.keys(pts),r=fr.getBoundingClientRect(),mm=D.h\/r.height;\n  if(k.length===2&&g0.d){var a=pts[k[0]],b=pts[k[1]],d=Math.hypot(a.x-b.x,a.y-b.y);setV('kxZoom',g0.z+(d\/g0.d-1)*60)}\n  else if(k.length===1&&g0.x!=null){setV('kxDx',g0.dx+(e.clientX-g0.x)*mm\/.4);setV('kxDy',g0.dy-(e.clientY-g0.y)*mm\/.4)}});\n['pointerup','pointercancel'].forEach(function(t){fr.addEventListener(t,function(e){delete pts[e.pointerId];snap()})});\nfr.addEventListener('wheel',function(e){if(!S.rc)return;e.preventDefault();setV('kxZoom',+$('kxZoom').value-Math.sign(e.deltaY))},{passive:false});\nfunction fit(){var st=$('kxStage');if(!st||!OUT.width||!$('kxS3').classList.contains('on'))return;var cs=getComputedStyle(st),aw=st.clientWidth-parseFloat(cs.paddingLeft)-parseFloat(cs.paddingRight),ah=st.clientHeight-parseFloat(cs.paddingTop)-parseFloat(cs.paddingBottom),ar=OUT.width\/OUT.height,w=Math.min(aw,ah*ar);if(w<=20){requestAnimationFrame(fit);return}fr.style.width=Math.floor(w)+'px';fr.style.height=Math.floor(w\/ar)+'px'}\naddEventListener('resize',function(){H.classList.toggle('kx-lock',STEP===3&&innerWidth<=900);fit()});\nif(window.ResizeObserver)new ResizeObserver(function(){fit()}).observe($('kxStage'));\n\/* ---------- boot ---------- *\/\nrenderList();\nvar qp=(location.search.match(\/[?&]chuan=([a-z0-9]+)\/)||[])[1]||(location.hash.match(\/^#([a-z0-9]+)$\/)||[])[1];\nvar last=ls('kx_last');\nif(qp&&byId(qp)){pick(qp,true)}else if(last&&last.d&&byId(last.d)){D=byId(last.d);if(last.bg){bgCol=last.bg;bgTouched=last.bg!==D.bg;paintBgs()}renderList();pick(last.d,false)}\nif('requestIdleCallback' in window)requestIdleCallback(function(){loadAI()},{timeout:5000});else setTimeout(loadAI,3000);\nwindow.KBX={pick:pick,process:process};\n})();\n<\/script>\n<!--\/KBIDX-->\n\n<section class=\"kbid-seo\"><div class=\"in\">\n<h2>C\u00e1ch l\u00e0m \u1ea3nh th\u1ebb online trong 30 gi\u00e2y<\/h2>\n<ol class=\"steps\"><li><b>Ch\u1ecdn \u1ea3nh<\/b> ch\u1ee5p ch\u00ednh di\u1ec7n, r\u00f5 m\u1eb7t, th\u1ea5y c\u1ea3 vai \u2014 \u1ea3nh \u0111i\u1ec7n tho\u1ea1i l\u00e0 \u0111\u1ee7.<\/li><li><b>Ch\u1ecdn chu\u1ea9n \u1ea3nh<\/b>: 3\u00d74, 4\u00d76 Vi\u1ec7t Nam, h\u1ed9 chi\u1ebfu, visa M\u1ef9 2\u00d72 inch, Schengen 3.5\u00d74.5\u2026<\/li><li><b>Ch\u1ecdn m\u00e0u n\u1ec1n<\/b> tr\u1eafng, xanh hay x\u00e1m \u2014 m\u00e1y t\u1ef1 t\u00e1ch n\u1ec1n v\u00e0 c\u0103n m\u1eb7t \u0111\u00fang t\u1ec9 l\u1ec7.<\/li><li><b>T\u1ea3i \u1ea3nh<\/b> JPG \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt (300 dpi), g\u1eedi ti\u1ec7m in ho\u1eb7c n\u1ed9p online l\u00e0 xong.<\/li><\/ol>\n<h2>K\u00edch th\u01b0\u1edbc \u1ea3nh th\u1ebb ph\u1ed5 bi\u1ebfn<\/h2>\n<div class=\"tb\"><table><thead><tr><th>Lo\u1ea1i \u1ea3nh<\/th><th>K\u00edch th\u01b0\u1edbc<\/th><th>Chi\u1ec1u cao \u0111\u1ea7u<\/th><th>N\u1ec1n<\/th><\/tr><\/thead><tbody><tr><td><a href=\"\/kich-thuoc-anh-the\/ho-chieu-viet-nam\/\">\u1ea2nh th\u1ebb \/ h\u1ed9 chi\u1ebfu Vi\u1ec7t Nam<\/a><\/td><td>4\u00d76 cm<\/td><td>~42\u201347 mm<\/td><td>Tr\u1eafng<\/td><\/tr><tr><td>\u1ea2nh h\u1ed3 s\u01a1, b\u1eb1ng c\u1ea5p<\/td><td>3\u00d74 cm<\/td><td>~22\u201327 mm<\/td><td>Tr\u1eafng \/ xanh<\/td><\/tr><tr><td><a href=\"\/kich-thuoc-anh-the\/visa-my\/\">Visa \/ h\u1ed9 chi\u1ebfu M\u1ef9<\/a><\/td><td>5.08\u00d75.08 cm (2\u00d72 inch)<\/td><td>25\u201335 mm<\/td><td>Tr\u1eafng<\/td><\/tr><tr><td><a href=\"\/kich-thuoc-anh-the\/visa-schengen\/\">Visa Schengen (ch\u00e2u \u00c2u)<\/a><\/td><td>3.5\u00d74.5 cm<\/td><td>32\u201336 mm<\/td><td>S\u00e1ng<\/td><\/tr><tr><td>Visa <a href=\"\/kich-thuoc-anh-the\/visa-nhat-ban\/\">Nh\u1eadt B\u1ea3n<\/a>, <a href=\"\/kich-thuoc-anh-the\/visa-han-quoc\/\">H\u00e0n Qu\u1ed1c<\/a>, <a href=\"\/kich-thuoc-anh-the\/visa-uc\/\">\u00dac<\/a><\/td><td>3.5\u00d74.5 cm<\/td><td>32\u201336 mm<\/td><td>Tr\u1eafng<\/td><\/tr><tr><td><a href=\"\/kich-thuoc-anh-the\/visa-trung-quoc\/\">Visa Trung Qu\u1ed1c<\/a><\/td><td>3.3\u00d74.8 cm<\/td><td>28\u201333 mm<\/td><td>Tr\u1eafng<\/td><\/tr><tr><td><a href=\"\/kich-thuoc-anh-the\/visa-canada\/\">Canada<\/a><\/td><td>Visa: 3,5\u00d74,5 cm \u00b7 PR\/h\u1ed9 chi\u1ebfu: 5\u00d77 cm<\/td><td>31\u201336 mm<\/td><td>Tr\u1eafng \/ s\u00e1ng<\/td><\/tr><\/tbody><\/table><\/div>\n<p class=\"note\"><a href=\"\/kich-thuoc-anh-the\/\">Xem \u0111\u1ea7y \u0111\u1ee7 k\u00edch th\u01b0\u1edbc \u1ea3nh visa 10 n\u01b0\u1edbc \u203a<\/a> Th\u00f4ng s\u1ed1 mang t\u00ednh tham kh\u1ea3o \u2014 h\u00e3y ki\u1ec3m tra y\u00eau c\u1ea7u m\u1edbi nh\u1ea5t c\u1ee7a c\u01a1 quan ti\u1ebfp nh\u1eadn h\u1ed3 s\u01a1 tr\u01b0\u1edbc khi n\u1ed9p.<\/p>\n<h2>C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p<\/h2>\n<details><summary>C\u00f4ng c\u1ee5 t\u1ea1o \u1ea3nh th\u1ebb n\u00e0y c\u00f3 mi\u1ec5n ph\u00ed kh\u00f4ng?<\/summary><p>Ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed, kh\u00f4ng c\u1ea7n \u0111\u0103ng k\u00fd, kh\u00f4ng \u0111\u00f3ng d\u1ea5u. B\u1ea1n t\u1ea3i \u1ea3nh JPG \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt, ch\u1ea5t l\u01b0\u1ee3ng 300 dpi.<\/p><\/details>\n<details><summary>\u1ea2nh c\u1ee7a t\u00f4i c\u00f3 b\u1ecb t\u1ea3i l\u00ean m\u1ea1ng kh\u00f4ng?<\/summary><p>Kh\u00f4ng. M\u1ecdi x\u1eed l\u00fd (t\u00e1ch n\u1ec1n, c\u0103n m\u1eb7t, ch\u1ec9nh m\u00e0u) ch\u1ea1y ngay trong tr\u00ecnh duy\u1ec7t tr\u00ean m\u00e1y b\u1ea1n. \u1ea2nh kh\u00f4ng \u0111\u01b0\u1ee3c g\u1eedi l\u00ean server c\u1ee7a K-BLACK hay b\u00ean th\u1ee9 ba.<\/p><\/details>\n<details><summary>\u1ea2nh l\u00e0m online c\u00f3 \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn khi n\u1ed9p h\u1ed3 s\u01a1, xin visa kh\u00f4ng?<\/summary><p>C\u00f4ng c\u1ee5 c\u1eaft \u0111\u00fang k\u00edch th\u01b0\u1edbc v\u00e0 t\u1ec9 l\u1ec7 \u0111\u1ea7u theo chu\u1ea9n ph\u1ed5 bi\u1ebfn. Tuy nhi\u00ean ch\u1ea5t l\u01b0\u1ee3ng ph\u1ee5 thu\u1ed9c \u1ea3nh g\u1ed1c: \u00e1nh s\u00e1ng \u0111\u1ec1u, nh\u00ecn th\u1eb3ng, kh\u00f4ng \u0111eo k\u00ednh, kh\u00f4ng b\u00f3ng \u0111\u1ed5. V\u1edbi h\u1ed3 s\u01a1 visa quan tr\u1ecdng, n\u00ean ch\u1ee5p t\u1ea1i studio \u0111\u1ec3 ch\u1eafc ch\u1eafn \u0111\u01b0\u1ee3c duy\u1ec7t.<\/p><\/details>\n<details><summary>In \u1ea3nh th\u1ebb nh\u01b0 th\u1ebf n\u00e0o cho \u0111\u00fang k\u00edch th\u01b0\u1edbc?<\/summary><p>File t\u1ea3i v\u1ec1 \u0111\u00e3 \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt \u1edf 300 dpi. G\u1eedi file cho ti\u1ec7m in \u1ea3nh v\u00e0 d\u1eb7n in \u1edf ch\u1ebf \u0111\u1ed9 100% \/ k\u00edch th\u01b0\u1edbc th\u1ef1c, kh\u00f4ng ph\u00f3ng to thu nh\u1ecf.<\/p><\/details>\n<details><summary>Ch\u1ee5p \u1ea3nh th\u1ebb t\u1ea1i K-BLACK gi\u00e1 bao nhi\u00eau?<\/summary><p>T\u1eeb 150.000\u0111, c\u00f3 \u0111\u00e8n studio chuy\u00ean nghi\u1ec7p, ch\u1ec9nh \u1ea3nh t\u1ea1i ch\u1ed7 v\u00e0 l\u1ea5y ngay t\u1ea1i M3-06 Manhattan Glory, Vinhomes Grand Park, Th\u1ee7 \u0110\u1ee9c. <a href=\"\/chup-anh-the-passport-visa\/\">\u0110\u1eb7t l\u1ecbch ch\u1ee5p \u1ea3nh th\u1ebb<\/a>.<\/p><\/details>\n<div class=\"cta\"><div><b>C\u1ea7n \u1ea3nh h\u1ed3 s\u01a1, visa chu\u1ea9n 100%?<\/b><span>Ch\u1ee5p t\u1ea1i studio K-BLACK \u00b7 \u0111\u00e8n chuy\u00ean nghi\u1ec7p \u00b7 ch\u1ec9nh t\u1ea1i ch\u1ed7 \u00b7 l\u1ea5y ngay<\/span><\/div><a href=\"\/chup-anh-the-passport-visa\/\">\u0110\u1eb7t l\u1ecbch t\u1eeb 150K \u203a<\/a><\/div>\n<p class=\"more\">C\u00f4ng c\u1ee5 mi\u1ec5n ph\u00ed kh\u00e1c c\u1ee7a K-BLACK: <a href=\"\/thu-vien-tao-dang\/\">Th\u01b0 vi\u1ec7n t\u1ea1o d\u00e1ng<\/a> \u00b7 <a href=\"\/gio-vang-tphcm\/\">Gi\u1edd v\u00e0ng h\u00f4m nay<\/a> \u00b7 <a href=\"\/photo-lab\/\">Photo Lab \u2013 h\u1ecdc nhi\u1ebfp \u1ea3nh<\/a> \u00b7 <a href=\"\/baogia\/\">B\u00e1o gi\u00e1 ch\u1ee5p \u1ea3nh online<\/a> \u00b7 <a href=\"\/uu-dai\/\">Mini game s\u0103n voucher<\/a><\/p>\n<\/div><\/section>\n<style>.kbid-seo{background:#07090f;color:#eef2ff;font-family:Montserrat,'Be Vietnam Pro',system-ui,sans-serif;padding:20px 18px 70px}.kbid-seo .in{max-width:900px;margin:0 auto}.kbid-seo h2{font-size:21px;margin:34px 0 12px;font-weight:800;color:#fff}.kbid-seo .steps{padding-left:20px;line-height:1.75;color:rgba(226,233,255,.8);font-size:14.5px}.kbid-seo .tb{overflow-x:auto;border:1px solid rgba(255,255,255,.09);border-radius:14px}.kbid-seo table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px;margin:0}.kbid-seo th,.kbid-seo td{padding:10px 12px;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.07);color:#eef2ff;background:none}.kbid-seo th{background:#0f1424;color:#7ad7ff;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.kbid-seo .note{font-size:12.5px;color:rgba(226,233,255,.5)}.kbid-seo details{background:#0f1424;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px 16px;margin:8px 0}.kbid-seo summary{cursor:pointer;font-weight:700;font-size:14.5px}.kbid-seo details p{color:rgba(226,233,255,.75);font-size:14px;line-height:1.7;margin:10px 0 2px}.kbid-seo a{color:#7ad7ff}.kbid-seo .cta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:28px;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,rgba(79,139,255,.25),#0f1424);border:1px solid rgba(122,215,255,.3)}.kbid-seo .cta div{display:flex;flex-direction:column;gap:4px}.kbid-seo .cta span{font-size:13px;color:rgba(226,233,255,.7)}.kbid-seo .cta a{flex:none;padding:12px 18px;border-radius:12px;background:#f5c451;color:#151000;font-weight:800;text-decoration:none;font-size:14px}.kbid-seo .more{margin-top:24px;font-size:13.5px;color:rgba(226,233,255,.6)}@media(max-width:640px){.kbid-seo .cta{flex-direction:column;align-items:flex-start}}<\/style>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebApplication\",\"name\":\"T\u1ea1o \u1ea3nh th\u1ebb online mi\u1ec5n ph\u00ed \u2013 K-BLACK\",\"url\":\"https:\/\/kblack.vn\/anh-the-online\/\",\"applicationCategory\":\"MultimediaApplication\",\"operatingSystem\":\"M\u1ecdi tr\u00ecnh duy\u1ec7t\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"VND\"},\"description\":\"C\u00f4ng c\u1ee5 t\u1ea1o \u1ea3nh th\u1ebb online mi\u1ec5n ph\u00ed: t\u1ef1 t\u00e1ch n\u1ec1n, c\u1eaft chu\u1ea9n 3x4, 4x6, h\u1ed9 chi\u1ebfu, visa M\u1ef9, Schengen, ch\u1ea5m \u0111i\u1ec3m theo chu\u1ea9n v\u00e0 xu\u1ea5t \u1ea3nh 300 dpi.\",\"provider\":{\"@type\":\"LocalBusiness\",\"name\":\"K-BLACK Studio\",\"url\":\"https:\/\/kblack.vn\/\",\"telephone\":\"+84367277935\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"M3-06 Manhattan Glory, Vinhomes Grand Park\",\"addressLocality\":\"Th\u1ee7 \u0110\u1ee9c\",\"addressRegion\":\"TP. H\u1ed3 Ch\u00ed Minh\",\"addressCountry\":\"VN\"}}},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"C\u00f4ng c\u1ee5 t\u1ea1o \u1ea3nh th\u1ebb n\u00e0y c\u00f3 mi\u1ec5n ph\u00ed kh\u00f4ng?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed, kh\u00f4ng c\u1ea7n \u0111\u0103ng k\u00fd, kh\u00f4ng \u0111\u00f3ng d\u1ea5u. B\u1ea1n t\u1ea3i \u1ea3nh JPG \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt, ch\u1ea5t l\u01b0\u1ee3ng 300 dpi.\"}},{\"@type\":\"Question\",\"name\":\"\u1ea2nh c\u1ee7a t\u00f4i c\u00f3 b\u1ecb t\u1ea3i l\u00ean m\u1ea1ng kh\u00f4ng?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Kh\u00f4ng. M\u1ecdi x\u1eed l\u00fd ch\u1ea1y ngay trong tr\u00ecnh duy\u1ec7t tr\u00ean m\u00e1y b\u1ea1n, \u1ea3nh kh\u00f4ng \u0111\u01b0\u1ee3c g\u1eedi l\u00ean server.\"}},{\"@type\":\"Question\",\"name\":\"\u1ea2nh l\u00e0m online c\u00f3 \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn khi n\u1ed9p h\u1ed3 s\u01a1, xin visa kh\u00f4ng?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"C\u00f4ng c\u1ee5 c\u1eaft \u0111\u00fang k\u00edch th\u01b0\u1edbc v\u00e0 t\u1ec9 l\u1ec7 \u0111\u1ea7u theo chu\u1ea9n ph\u1ed5 bi\u1ebfn, nh\u01b0ng ch\u1ea5t l\u01b0\u1ee3ng ph\u1ee5 thu\u1ed9c \u1ea3nh g\u1ed1c. V\u1edbi h\u1ed3 s\u01a1 visa quan tr\u1ecdng, n\u00ean ch\u1ee5p t\u1ea1i studio.\"}},{\"@type\":\"Question\",\"name\":\"In \u1ea3nh th\u1ebb nh\u01b0 th\u1ebf n\u00e0o cho \u0111\u00fang k\u00edch th\u01b0\u1edbc?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"File t\u1ea3i v\u1ec1 \u0111\u00e3 \u0111\u00fang k\u00edch th\u01b0\u1edbc th\u1eadt \u1edf 300 dpi. G\u1eedi ti\u1ec7m in v\u00e0 in \u1edf ch\u1ebf \u0111\u1ed9 100% \/ k\u00edch th\u01b0\u1edbc th\u1ef1c.\"}},{\"@type\":\"Question\",\"name\":\"Ch\u1ee5p \u1ea3nh th\u1ebb t\u1ea1i K-BLACK gi\u00e1 bao nhi\u00eau?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"T\u1eeb 150.000\u0111, ch\u1ee5p v\u1edbi \u0111\u00e8n studio, ch\u1ec9nh \u1ea3nh t\u1ea1i ch\u1ed7 v\u00e0 l\u1ea5y ngay t\u1ea1i Vinhomes Grand Park, Th\u1ee7 \u0110\u1ee9c, TP.HCM.\"}}]}]}<\/script>\n\n<!--KBK back--><style>.kbk{display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--kbs,36px);box-sizing:border-box;width:var(--kbs,36px)!important;min-width:var(--kbs,36px);max-width:var(--kbs,36px);height:var(--kbs,36px)!important;padding:0!important;margin:0;border-radius:calc(var(--kbs,36px)*.34);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff!important;text-decoration:none!important;cursor:pointer;transition:background .2s,transform .15s;-webkit-tap-highlight-color:transparent}.kbk:hover{background:rgba(255,255,255,.15)}.kbk:active{transform:scale(.92)}.kbk svg{width:calc(var(--kbs,36px)*.46)!important;height:calc(var(--kbs,36px)*.46)!important;max-width:none;flex:none;display:block}.kbk.lt{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12);color:#111!important}.kbk.fx{position:absolute;left:max(14px,env(safe-area-inset-left));z-index:2147483000}.kbk-w{display:inline-flex!important;align-items:center;gap:10px;vertical-align:middle;max-width:100%;flex-wrap:nowrap}<\/style>\n<script>(function(){var SEL='a.kx-brand',FB='\/',n=0;\nfunction lum(e){while(e&&e.nodeType===1){var c=getComputedStyle(e).backgroundColor,m=c.match(\/[\\d.]+\/g);if(m&&(m.length<4||+m[3]>.5))return(.2126*m[0]+.7152*m[1]+.0722*m[2])\/255;e=e.parentElement}return 0}\nfunction fixedHost(e){while(e&&e!==document.body){if(getComputedStyle(e).position==='fixed')return e;e=e.parentElement}return null}\nfunction mk(){var a=document.createElement('a');a.className='kbk';a.href=FB;a.setAttribute('aria-label','Quay l\u1ea1i');a.innerHTML='<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg>';a.onclick=function(e){var r=document.referrer;if(r&&r.indexOf(location.host)>-1&&history.length>1){e.preventDefault();history.back()}};return a}\nfunction later(f){f();[120,400,1000,2500].forEach(function(t){setTimeout(f,t)});addEventListener('load',f);addEventListener('resize',f);try{new ResizeObserver(f).observe(document.body)}catch(e){}}\nfunction go(){if(document.querySelector('.kbk'))return;var t=SEL&&document.querySelector(SEL);if(SEL&&!t&&n++<40){setTimeout(go,150);return}\nvar b=mk();if(t){var vis=t;t=t.closest('a')||t;var r=t.getBoundingClientRect();b.style.setProperty('--kbs',Math.max(32,Math.min(40,Math.round(r.height+12)))+'px');if(lum(t)>.55)b.classList.add('lt');\nif(r.left<70){var w=document.createElement('span');w.className='kbk-w';t.parentNode.insertBefore(w,t);w.appendChild(b);w.appendChild(t);\nlater(function(){b.style.top='0px';b.style.position='relative';w.style.marginLeft='';var q=vis.getBoundingClientRect(),p=b.getBoundingClientRect();if(q.height>4)b.style.top=Math.round((q.top+q.height\/2)-(p.top+p.height\/2))+'px';if(p.left<12)w.style.marginLeft=Math.round(12-p.left)+'px'});return}\nvar host=fixedHost(t);b.classList.add('fx');(host||document.body).appendChild(b);\nlater(function(){var q=vis.getBoundingClientRect(),h=host?host.getBoundingClientRect():{top:-scrollY,left:-scrollX};if(q.height<4)q=t.getBoundingClientRect();b.style.top=Math.round(q.top-h.top+q.height\/2-b.offsetHeight\/2)+'px';b.style.left=Math.max(14,Math.round(q.left-h.left-b.offsetWidth-12))+'px'});return}\nif(lum(document.body)>.55)b.classList.add('lt');b.classList.add('fx');b.style.top='calc(max(14px,env(safe-area-inset-top)) + var(--wp-admin--admin-bar--height,0px))';document.body.appendChild(b)}\nvar mo=0;function watch(){if(mo)return;mo=new MutationObserver(function(){if(!document.querySelector('.kbk')){clearTimeout(watch.t);watch.t=setTimeout(function(){n=0;go()},120)}});mo.observe(document.body,{childList:true,subtree:true})}\nfunction start(){go();watch()}\nif(document.readyState==='loading')document.addEventListener('DOMContentLoaded',start);else start()})();<\/script>\n<!--KX-UI3--><style>@media (max-width:480px){.kx-top .kx-brand{display:none!important}.kx-top .kbk-w{flex:none}}.kx-doc .tx{min-width:0}.kx-doc .tx small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u2190 V\u1ec1 ch\u1ebf \u0111\u1ed9 T\u1ef1 \u0111\u1ed9ng (mi\u1ec5n ph\u00ed) K-BLACK\u1ea2nh th\u1ebb 1Gi\u1ea5y t\u1edd2\u1ea2nh3Ho\u00e0n thi\u1ec7n Ch\u1ee5p t\u1ea1i studio t\u1eeb 150KStudio 150K T\u1ea1o \u1ea3nh th\u1ebb online mi\u1ec5n ph\u00ed Ch\u1ee5p ho\u1eb7c t\u1ea3i \u1ea3nh, m\u00e1y t\u1ef1 t\u00e1ch n\u1ec1n, c\u0103n m\u1eb7t v\u00e0 ch\u1ea5m \u0111i\u1ec3m theo \u0111\u00fang chu\u1ea9n 3\u00d74, 4\u00d76, h\u1ed9 chi\u1ebfu, visa M\u1ef9, H\u00e0n, Nh\u1eadt, Schengen\u2026 \u1ea2nh x\u1eed l\u00fd ngay tr\u00ean [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-6275","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/pages\/6275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/comments?post=6275"}],"version-history":[{"count":1,"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/pages\/6275\/revisions"}],"predecessor-version":[{"id":7288,"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/pages\/6275\/revisions\/7288"}],"wp:attachment":[{"href":"https:\/\/kblack.vn\/en\/wp-json\/wp\/v2\/media?parent=6275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}