{
  "date": "2026-10-27",
  "method": {
    "ko": "직접 그린 3024×4032 인물 그림을 사진 자르기와 같은 processImage로 정사각형 네 가지로 자른 뒤 800×800 WebP(화질 85)로 줄였습니다. 원은 저장한 정사각형 위에 원 모양 마스크를 씌워 계산했습니다(미루킷은 정사각형으로 저장하고, 원으로 가리는 것은 올리는 서비스입니다). 얼굴·목은 피부색, 머리카락은 머리색 픽셀로 셌습니다.",
    "en": "A synthetic 3024×4032 portrait was cropped to four squares by the same processImage the Crop tool uses, then resized to 800×800 WebP (quality 85). The circle is a mask applied to the saved square (MiruKit saves a square; the service you upload to draws the circle). Face/neck and hair were counted by their flat colours.",
    "ja": "自作の3024×4032の人物画像を、切り抜きツールと同じprocessImageで4種類の正方形に切り抜き、800×800のWebP（画質85）に縮小しました。円は保存した正方形に円形のマスクをかけて計算しています（MiruKitは正方形で保存し、円で隠すのはアップロード先のサービスです）。顔・首は肌色、髪は髪の色の画素で数えました。"
  },
  "table": {
    "ko": {
      "headers": [
        "상자 위치",
        "원 안 얼굴·목 / 머리카락",
        "원 지름 대비 얼굴 폭 · 98px에서",
        "800px WebP 용량"
      ],
      "rows": [
        [
          "1:1 가운데 그대로",
          "100.0% / 100.0%",
          "19.8% · 19px",
          "6.0 KB"
        ],
        [
          "얼굴을 가운데·조금 위로",
          "100.0% / 100.0%",
          "42.9% · 42px",
          "17.0 KB"
        ],
        [
          "얼굴에 너무 바짝",
          "99.0% / 55.8%",
          "85.7% · 84px",
          "15.0 KB"
        ],
        [
          "얼굴을 왼쪽 위 3분의 1에",
          "98.0% / 49.5%",
          "42.9% · 42px",
          "16.4 KB"
        ]
      ]
    },
    "en": {
      "headers": [
        "Box placement",
        "Face/neck / hair inside circle",
        "Face width vs circle · at 98px",
        "800px WebP size"
      ],
      "rows": [
        [
          "1:1 centred as is",
          "100.0% / 100.0%",
          "19.8% · 19px",
          "6.0 KB"
        ],
        [
          "Face centred, slightly high",
          "100.0% / 100.0%",
          "42.9% · 42px",
          "17.0 KB"
        ],
        [
          "Too tight on the face",
          "99.0% / 55.8%",
          "85.7% · 84px",
          "15.0 KB"
        ],
        [
          "Face on the upper-left third",
          "98.0% / 49.5%",
          "42.9% · 42px",
          "16.4 KB"
        ]
      ]
    },
    "ja": {
      "headers": [
        "枠の位置",
        "円の中の顔・首 / 髪",
        "円の直径に対する顔の幅 · 98pxで",
        "800pxのWebP容量"
      ],
      "rows": [
        [
          "1:1を中央のまま",
          "100.0% / 100.0%",
          "19.8% · 19px",
          "6.0 KB"
        ],
        [
          "顔を中央・少し上に",
          "100.0% / 100.0%",
          "42.9% · 42px",
          "17.0 KB"
        ],
        [
          "顔に寄りすぎ",
          "99.0% / 55.8%",
          "85.7% · 84px",
          "15.0 KB"
        ],
        [
          "顔を左上の3分の1に",
          "98.0% / 49.5%",
          "42.9% · 42px",
          "16.4 KB"
        ]
      ]
    }
  },
  "raw": {
    "profile": {
      "source": [
        3024,
        4032
      ],
      "head": {
        "x": 1212,
        "y": 1120,
        "w": 600,
        "h": 760,
        "hairTop": 1070
      },
      "geometry": {
        "circleAreaPercent": 78.53981633974483,
        "eachCornerPercent": 5.365045915063793,
        "cornerGapAlongDiagonalPercentOfSide": 20.71067811865476,
        "cornerGapAt800px": 165.68542494923807
      },
      "rows": [
        {
          "id": "centre",
          "rect": {
            "x": 0,
            "y": 504,
            "width": 3024,
            "height": 3024
          },
          "output": [
            800,
            800
          ],
          "bytes": 6120,
          "skinPixels": 26305,
          "skinInsidePercent": 100,
          "hairInsidePercent": 100,
          "faceWidthPercentOfCircle": 19.841269841269842,
          "headCentrePercent": [
            50,
            32.93650793650794
          ],
          "faceWidthAt98": 19.444444444444446,
          "faceWidthAt40": 7.936507936507937,
          "headHeightPercent": 26.785714285714285
        },
        {
          "id": "fit",
          "rect": {
            "x": 812,
            "y": 870,
            "width": 1400,
            "height": 1400
          },
          "output": [
            800,
            800
          ],
          "bytes": 17396,
          "skinPixels": 123143,
          "skinInsidePercent": 100,
          "hairInsidePercent": 100,
          "faceWidthPercentOfCircle": 42.857142857142854,
          "headCentrePercent": [
            50,
            45
          ],
          "faceWidthAt98": 42,
          "faceWidthAt40": 17.142857142857142,
          "headHeightPercent": 57.857142857142854
        },
        {
          "id": "tight",
          "rect": {
            "x": 1162,
            "y": 1150,
            "width": 700,
            "height": 700
          },
          "output": [
            800,
            800
          ],
          "bytes": 15342,
          "skinPixels": 409333,
          "skinInsidePercent": 98.98639982605849,
          "hairInsidePercent": 55.78062825336908,
          "faceWidthPercentOfCircle": 85.71428571428571,
          "headCentrePercent": [
            50,
            50
          ],
          "faceWidthAt98": 84,
          "faceWidthAt40": 34.285714285714285,
          "headHeightPercent": 115.71428571428571
        },
        {
          "id": "corner",
          "rect": {
            "x": 1092,
            "y": 1108,
            "width": 1400,
            "height": 1400
          },
          "output": [
            800,
            800
          ],
          "bytes": 16782,
          "skinPixels": 123152,
          "skinInsidePercent": 97.96592828374692,
          "hairInsidePercent": 49.454628956332044,
          "faceWidthPercentOfCircle": 42.857142857142854,
          "headCentrePercent": [
            30,
            28
          ],
          "faceWidthAt98": 42,
          "faceWidthAt40": 17.142857142857142,
          "headHeightPercent": 57.857142857142854
        }
      ],
      "sizes": [
        {
          "side": 200,
          "webpBytes": 1852,
          "jpegBytes": 3426,
          "at98x2": 1.0204081632653061,
          "at98x3": 0.6802721088435374
        },
        {
          "side": 400,
          "webpBytes": 3704,
          "jpegBytes": 7614,
          "at98x2": 2.0408163265306123,
          "at98x3": 1.3605442176870748
        },
        {
          "side": 800,
          "webpBytes": 17396,
          "jpegBytes": 31349,
          "at98x2": 4.081632653061225,
          "at98x3": 2.7210884353741496
        },
        {
          "side": 1080,
          "webpBytes": 67490,
          "jpegBytes": 68175,
          "at98x2": 5.510204081632653,
          "at98x3": 3.673469387755102
        }
      ]
    },
    "derived": {
      "circleHiddenPercent": 21.46018366025517,
      "hairHeadroomPercentOfBox": {
        "centre": 18.71693121693122,
        "fit": 14.285714285714285,
        "tight": -11.428571428571429,
        "corner": -2.7142857142857144
      },
      "faceWidthAt40": {
        "centre": 7.936507936507937,
        "fit": 17.142857142857142,
        "tight": 34.285714285714285,
        "corner": 17.142857142857142
      },
      "devicePixelsFor98": {
        "x2": 196,
        "x3": 294
      }
    }
  },
  "figures": [
    {
      "file": {
        "ko": "batch2-profile-picture-circle-comparison-ko.webp",
        "en": "batch2-profile-picture-circle-comparison-en.webp",
        "ja": "batch2-profile-picture-circle-comparison-ja.webp"
      },
      "width": 1200,
      "height": {
        "ko": 871,
        "en": 898,
        "ja": 871
      },
      "alt": {
        "ko": "실제 저장한 800px 정사각형에 원 마스크를 씌운 모습과 98px·40px로 줄여 본 모습입니다. 흐린 모서리가 원에서 빠집니다.",
        "en": "The saved 800px squares with a circle mask, plus the same files shown at 98px and 40px. The faded corners are hidden by the circle.",
        "ja": "実際に保存した800pxの正方形に円のマスクをかけた様子と、98px・40pxに縮小した様子です。薄い角が円で隠れます。"
      },
      "caption": {
        "ko": "실제 저장한 800px 정사각형에 원 마스크를 씌운 모습과 98px·40px로 줄여 본 모습입니다. 흐린 모서리가 원에서 빠집니다.",
        "en": "The saved 800px squares with a circle mask, plus the same files shown at 98px and 40px. The faded corners are hidden by the circle.",
        "ja": "実際に保存した800pxの正方形に円のマスクをかけた様子と、98px・40pxに縮小した様子です。薄い角が円で隠れます。"
      }
    },
    {
      "file": {
        "ko": "batch2-profile-picture-circle-steps-ko.webp",
        "en": "batch2-profile-picture-circle-steps-en.webp",
        "ja": "batch2-profile-picture-circle-steps-ja.webp"
      },
      "width": 1200,
      "height": {
        "ko": 1800,
        "en": 1800,
        "ja": 1800
      },
      "alt": {
        "ko": "사진 자르기: 1:1 · 프로필 / 인스타를 고른 처음 상태(위)와, 정확한 위치·크기에서 1400×1400 상자를 왼쪽에서 812·위에서 870으로 옮긴 상태(아래)입니다.",
        "en": "Crop photos: 1:1 · profile / Instagram as first placed (top), then a 1400×1400 box moved to 812 from left and 870 from top in Exact position & size (bottom).",
        "ja": "切り抜き：1:1 · プロフィール／Instagramを選んだ最初の状態（上）と、位置・サイズを数値で指定で1400×1400の枠を左から812・上から870に移した状態（下）です。"
      },
      "caption": {
        "ko": "사진 자르기: 1:1 · 프로필 / 인스타를 고른 처음 상태(위)와, 정확한 위치·크기에서 1400×1400 상자를 왼쪽에서 812·위에서 870으로 옮긴 상태(아래)입니다.",
        "en": "Crop photos: 1:1 · profile / Instagram as first placed (top), then a 1400×1400 box moved to 812 from left and 870 from top in Exact position & size (bottom).",
        "ja": "切り抜き：1:1 · プロフィール／Instagramを選んだ最初の状態（上）と、位置・サイズを数値で指定で1400×1400の枠を左から812・上から870に移した状態（下）です。"
      }
    }
  ]
}
