From 20cec8cb00cd815e96bf1cc0f80f78f50604cc66 Mon Sep 17 00:00:00 2001 From: g1nation Date: Tue, 2 Jun 2026 16:25:30 +0900 Subject: [PATCH] v0.2.0: photo mosaic 2x resolution + version bump - mosaic: resolution slider up to 192 cols (was 96), default 96, output canvas cap 3600px so higher density renders/saves at genuinely higher resolution Co-Authored-By: Claude Opus 4.8 --- docs/records/PhotoAI/chronicle.config.json | 2 +- package.json | 2 +- src/renderer/components/MosaicView.tsx | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/records/PhotoAI/chronicle.config.json b/docs/records/PhotoAI/chronicle.config.json index 1f76b95..c7040b1 100644 --- a/docs/records/PhotoAI/chronicle.config.json +++ b/docs/records/PhotoAI/chronicle.config.json @@ -7,5 +7,5 @@ "corePurpose": "", "detailLevel": "standard", "createdAt": "2026-06-01T04:16:09.722Z", - "updatedAt": "2026-06-02T05:39:25.175Z" + "updatedAt": "2026-06-02T07:18:12.522Z" } diff --git a/package.json b/package.json index fd4cf81..0a1a9a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ai-photo-organizer", - "version": "0.1.0", + "version": "0.2.0", "description": "Local-first AI photo organizer — face recognition + EXIF based auto archiving", "author": "PhotoAI", "license": "MIT", diff --git a/src/renderer/components/MosaicView.tsx b/src/renderer/components/MosaicView.tsx index 425ba4a..dd6445c 100644 --- a/src/renderer/components/MosaicView.tsx +++ b/src/renderer/components/MosaicView.tsx @@ -41,7 +41,7 @@ export function MosaicView(props: { const poolRef = useRef([]) const targetImgRef = useRef(null) const [ready, setReady] = useState(false) - const [cols, setCols] = useState(48) + const [cols, setCols] = useState(96) const [blend, setBlend] = useState(0.35) const [unique, setUnique] = useState(true) @@ -89,7 +89,8 @@ export function MosaicView(props: { sctx.drawImage(tImg, 0, 0, gridCols, gridRows) const cells = sctx.getImageData(0, 0, gridCols, gridRows).data - const cellPx = Math.max(8, Math.round(1800 / gridCols)) + // 출력 캔버스 상한 3600px → 해상도(열 수)를 높여도 타일이 뭉개지지 않고 고해상도로 저장 + const cellPx = Math.max(8, Math.round(3600 / gridCols)) canvas.width = gridCols * cellPx canvas.height = gridRows * cellPx const ctx = canvas.getContext('2d')! @@ -185,7 +186,7 @@ export function MosaicView(props: { setCols(Number(e.target.value))}