fix:슬라이드 폰트 크기 2배 확대 + 좌표 정확도 개선
- SlideAnnotationService: 아웃트로 메인텍스트 36→72, 서브텍스트 24→48 - ScreenAnalysisService: 그리드 오버레이 레터박스 제거 (전체 채움) → Gemini 좌표가 이미지 비율과 직접 매핑되어 스포트라이트 위치 정확도 향상 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -276,24 +276,16 @@ private function createGridOverlay(string $imagePath): ?string
|
||||
$srcW = imagesx($source);
|
||||
$srcH = imagesy($source);
|
||||
|
||||
// 1920x1080 캔버스에 리사이즈 (비율 유지, 여백은 검정)
|
||||
// 1920x1080 캔버스에 리사이즈 (전체 채움, 레터박스 없음)
|
||||
// 이미지를 캔버스 전체에 채워서 Gemini 좌표가 이미지 비율과 직접 매핑되도록 함
|
||||
$canvas = imagecreatetruecolor(self::ANALYSIS_WIDTH, self::ANALYSIS_HEIGHT);
|
||||
$black = imagecolorallocate($canvas, 0, 0, 0);
|
||||
imagefill($canvas, 0, 0, $black);
|
||||
|
||||
$scale = min(self::ANALYSIS_WIDTH / $srcW, self::ANALYSIS_HEIGHT / $srcH);
|
||||
$newW = (int) ($srcW * $scale);
|
||||
$newH = (int) ($srcH * $scale);
|
||||
$offsetX = (int) ((self::ANALYSIS_WIDTH - $newW) / 2);
|
||||
$offsetY = (int) ((self::ANALYSIS_HEIGHT - $newH) / 2);
|
||||
|
||||
imagecopyresampled($canvas, $source, $offsetX, $offsetY, 0, 0, $newW, $newH, $srcW, $srcH);
|
||||
imagecopyresampled($canvas, $source, 0, 0, 0, 0, self::ANALYSIS_WIDTH, self::ANALYSIS_HEIGHT, $srcW, $srcH);
|
||||
imagedestroy($source);
|
||||
|
||||
Log::debug("ScreenAnalysis: 이미지 정규화", [
|
||||
Log::debug("ScreenAnalysis: 이미지 정규화 (전체 채움)", [
|
||||
'original' => "{$srcW}x{$srcH}",
|
||||
'normalized' => self::ANALYSIS_WIDTH . 'x' . self::ANALYSIS_HEIGHT,
|
||||
'content_area' => "{$offsetX},{$offsetY} {$newW}x{$newH}",
|
||||
'canvas' => self::ANALYSIS_WIDTH . 'x' . self::ANALYSIS_HEIGHT,
|
||||
]);
|
||||
|
||||
// 그리드 오버레이 (정규화된 캔버스 위에)
|
||||
|
||||
Reference in New Issue
Block a user