refactor(camera): centralize JPEG transcode cap

This commit is contained in:
Peter Steinberger
2026-02-15 20:33:14 +00:00
parent b30ed6ca4c
commit ef2c66a16b
3 changed files with 40 additions and 23 deletions

View File

@@ -0,0 +1,19 @@
import Foundation
public enum PhotoCapture {
public static func transcodeJPEGForGateway(
rawData: Data,
maxWidthPx: Int,
quality: Double,
maxPayloadBytes: Int = 5 * 1024 * 1024
) throws -> (data: Data, widthPx: Int, heightPx: Int) {
// Base64 inflates payloads by ~4/3; cap encoded bytes so the payload stays under maxPayloadBytes (API limit).
let maxEncodedBytes = (maxPayloadBytes / 4) * 3
return try JPEGTranscoder.transcodeToJPEG(
imageData: rawData,
maxWidthPx: maxWidthPx,
quality: quality,
maxBytes: maxEncodedBytes)
}
}