J'ai un problème étrange où après avoir recadré une photo de ma photothèque, il ne peut pas être affiché à partir de l'App. Il me donne cette erreur après avoir exécuté ce code:Strange CoreImage problèmes de culture rencontrent ici
self.correctedImageView.image = UIImage(ciImage: correctedImage)
[api] -[CIContext(CIRenderDestination) _startTaskToRender:toDestination:forPrepareRender:error:] The image extent and destination extent do not intersect.
Voici le code que j'ai utilisé pour recadrer et afficher. (InputImage est CIImage)
let imageSize = inputImage.extent.size let correctedImage = inputImage .cropped(to: textObvBox.boundingBox.scaled(to: imageSize)) DispatchQueue.main.async { self.correctedImageView.image = UIImage(ciImage: correctedImage) }
Plus d'info: Debug imprimer l'étendue de la inputImage et correctedImage
Printing description of self.inputImage: CIImage: 0x1c42047a0 extent [0 0 3024 4032]>
crop [430 3955 31 32] extent=[430 3955 31 32] affine [0 -1 1 0 0 4032] extent=[0 0 3024 4032] opaque affine [1 0 0 -1 0 3024] extent=[0 0 4032 3024] opaque colormatch "sRGB IEC61966-2.1"_to_workingspace extent=[0 0 4032 3024] opaque IOSurface 0x1c4204790(501) seed:1 YCC420f 601 alpha_one extent=[0 0 4032 3024] opaque
Le plus drôle est que quand je mets un point d'arrêt, en utilisant Xcode, j'ai pu afficher un aperçu du image recadrée correctement. Je ne suis pas sûr de ce que cette mesure est pour CIImage, mais UIMageView ne l'aime pas quand je lui assigne l'image recadrée. Une idée de ce que fait cette chose?
CoreImage fonctionne sur un plan infini. L'étendue est le rectangle dans ce plan qui contient réellement les données d'image qui vous intéressent. –
Comment changer l'étendue? – mskw
Lorsque j'applique cela à un uiimageview il ne me laisse pas – mskw