Я пытаюсь сделать 24 -мегапиксельную фотографию с помощью AvFoundation. Я использую iPhone 15 Pro, на iOS 18. Согласно документации: Примечание. При поддержке 24-мегапиксельная настройка (5712, 4284) обслуживается только 24-мегапиксельной, когда выбирается в AutodeferredPhotoDeliveryEnabled.
Вот как я настраиваю свой выходной выходself.photoOutput.isAppleProRAWEnabled = self.photoOutput.isAppleProRAWSupported
self.photoOutput.maxPhotoQualityPrioritization = .quality
if #available(iOS 17.0, *) {
if self.photoOutput.isAutoDeferredPhotoDeliverySupported {
self.photoOutput.isAutoDeferredPhotoDeliveryEnabled = true
self.autoDeferredDeliveryObserver = self.photoOutput.observe(\.isAutoDeferredPhotoDeliverySupported) { [weak self] photoOutput, change in
guard let self = self, let newValue = change.newValue else { return }
print("autoDeferredDeliverySupport is now: \(newValue)")
}
}
}
self.session.addOutput(self.photoOutput)
if let dimensions = videoDevice.activeFormat.supportedMaxPhotoDimensions.last {
self.photoOutput.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}
< /code>
И вот как я настраиваю настройки фотографии: < /p>
let settings: AVCapturePhotoSettings
if format == .heif, photoOutput.availablePhotoCodecTypes.contains(.hevc) {
settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
} else {
settings = AVCapturePhotoSettings()
}
if let dimensions = videoDeviceInput?.device.activeFormat.supportedMaxPhotoDimensions.last {
settings.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}
if let previewType = settings.availablePreviewPhotoPixelFormatTypes.first {
settings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewType]
}
return settings
< /code>
Для обработки и снятия фотографий Я использую модифицированный процессор Photocapture Project от AVCAM Project. Он работает нормально и правильно сохраняет изображения. Но отложенный метод прокси никогда не вызывается! < /P>
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
// works properly and saves image properly
// but only in 12mp despite the fact that settings are for 24mp
print(resolvedSettings.deferredPhotoProxyDimensions) // (0, 0)
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?, error: (any Error)?) {
print("not getting called")
}
< /code>
Итак, вопрос: что я делаю не так? Как снять 24 -мегапиксельные изображения?
Подробнее здесь: https://stackoverflow.com/questions/797 ... photoproxy
AvcapturePotoCapturedElegate.PotoOutput (: DidFinishCapturingDeferredPhotoproxy) не называется ⇐ IOS
Программируем под IOS
1757429847
Anonymous
Я пытаюсь сделать 24 -мегапиксельную фотографию с помощью AvFoundation. Я использую iPhone 15 Pro, на iOS 18. Согласно документации: Примечание. При поддержке 24-мегапиксельная настройка (5712, 4284) обслуживается только 24-мегапиксельной, когда выбирается в AutodeferredPhotoDeliveryEnabled.
Вот как я настраиваю свой выходной выходself.photoOutput.isAppleProRAWEnabled = self.photoOutput.isAppleProRAWSupported
self.photoOutput.maxPhotoQualityPrioritization = .quality
if #available(iOS 17.0, *) {
if self.photoOutput.isAutoDeferredPhotoDeliverySupported {
self.photoOutput.isAutoDeferredPhotoDeliveryEnabled = true
self.autoDeferredDeliveryObserver = self.photoOutput.observe(\.isAutoDeferredPhotoDeliverySupported) { [weak self] photoOutput, change in
guard let self = self, let newValue = change.newValue else { return }
print("autoDeferredDeliverySupport is now: \(newValue)")
}
}
}
self.session.addOutput(self.photoOutput)
if let dimensions = videoDevice.activeFormat.supportedMaxPhotoDimensions.last {
self.photoOutput.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}
< /code>
И вот как я настраиваю настройки фотографии: < /p>
let settings: AVCapturePhotoSettings
if format == .heif, photoOutput.availablePhotoCodecTypes.contains(.hevc) {
settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
} else {
settings = AVCapturePhotoSettings()
}
if let dimensions = videoDeviceInput?.device.activeFormat.supportedMaxPhotoDimensions.last {
settings.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}
if let previewType = settings.availablePreviewPhotoPixelFormatTypes.first {
settings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewType]
}
return settings
< /code>
Для обработки и снятия фотографий Я использую модифицированный процессор Photocapture Project от AVCAM Project. Он работает нормально и правильно сохраняет изображения. Но отложенный метод прокси никогда не вызывается! < /P>
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
// works properly and saves image properly
// but only in 12mp despite the fact that settings are for 24mp
print(resolvedSettings.deferredPhotoProxyDimensions) // (0, 0)
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?, error: (any Error)?) {
print("not getting called")
}
< /code>
Итак, вопрос: что я делаю не так? Как снять 24 -мегапиксельные изображения?
Подробнее здесь: [url]https://stackoverflow.com/questions/79702188/avcapturephotocapturedelegate-photooutputdidfinishcapturingdeferredphotoproxy[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия