Skip to content

Commit 4e6447d

Browse files
committed
[#69] 코디 완성 이미지 누끼 배경 및 기록 3:4 비율 적용
1 parent 5c2daba commit 4e6447d

2 files changed

Lines changed: 27 additions & 4 deletions

File tree

Codive/Features/Home/Presentation/Component/CompletePopUp.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ struct CodiCompositeView: View {
131131
}
132132
}
133133
.frame(width: itemSize, height: itemSize)
134-
.background(Color.white)
135134
.clipShape(RoundedRectangle(cornerRadius: 8))
136135
.position(x: position.x, y: position.y)
137136
.zIndex(Double(index))

Codive/Features/Home/Presentation/ViewModel/HomeViewModel.swift

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,10 @@ extension HomeViewModel {
288288

289289
let captureView = CodiCompositeView(clothes: items, loadedImages: loadedImages)
290290
.frame(width: 260, height: 260)
291-
.background(Color.white)
291+
.background(Color.Codive.grayscale7)
292292

293293
let renderer = ImageRenderer(content: captureView)
294+
renderer.isOpaque = true
294295
renderer.scale = UIScreen.main.scale
295296

296297
guard let uiImage = renderer.uiImage else {
@@ -373,10 +374,13 @@ extension HomeViewModel {
373374
return
374375
}
375376

377+
// 1:1 → 3:4 비율 변환 (상하 여백 추가)
378+
let recordImage = Self.convertToThreeByFour(codiImage)
379+
376380
let selectedPhoto = SelectedPhoto(
377381
id: UUID().uuidString,
378-
originalImage: codiImage,
379-
croppedImage: codiImage,
382+
originalImage: recordImage,
383+
croppedImage: recordImage,
380384
order: 1
381385
)
382386

@@ -397,6 +401,26 @@ extension HomeViewModel {
397401
}
398402
}
399403

404+
/// 1:1 이미지를 3:4 비율로 변환 (상하에 배경색 여백 추가)
405+
private static func convertToThreeByFour(_ image: UIImage) -> UIImage {
406+
let width = image.size.width
407+
let targetHeight = width * 4.0 / 3.0
408+
let yOffset = (targetHeight - image.size.height) / 2.0
409+
let targetSize = CGSize(width: width, height: targetHeight)
410+
let bgColor = UIColor(red: 246.0 / 255.0, green: 246.0 / 255.0, blue: 246.0 / 255.0, alpha: 1.0)
411+
412+
let format = UIGraphicsImageRendererFormat()
413+
format.scale = image.scale
414+
format.opaque = true
415+
416+
let renderer = UIGraphicsImageRenderer(size: targetSize, format: format)
417+
return renderer.image { context in
418+
bgColor.setFill()
419+
context.fill(CGRect(origin: .zero, size: targetSize))
420+
image.draw(at: CGPoint(x: 0, y: yOffset))
421+
}
422+
}
423+
400424
private func completeProcess() {
401425
self.isEditingExistingCodi = false
402426
self.showCompletePopUp = false

0 commit comments

Comments
 (0)