Obtenir une CGImage de CIImage
J'ai une UIImage qui est chargé à partir d'un CIImage avec:
tempImage = [UIImage imageWithCIImage:ciImage];
Le problème est que j'ai besoin de recadrer tempImage
à un CGRect
et la seule façon que je sais comment faire cela est d'utiliser CGImage
.
Le problème est que dans l'iOS 6.0 documentation, j'ai trouvé ceci:
CGImage
If the UIImage object was initialized using a CIImage object, the value of the property is NULL.
A. Comment faire pour convertir de CIImage à CGImage?
Je suis en utilisant ce code mais j'ai une fuite de mémoire (et ne peut pas comprendre d'où):
+(UIImage*)UIImageFromCIImage:(CIImage*)ciImage {
CGSize size = ciImage.extent.size;
UIGraphicsBeginImageContext(size);
CGRect rect;
rect.origin = CGPointZero;
rect.size = size;
UIImage *remImage = [UIImage imageWithCIImage:ciImage];
[remImage drawInRect:rect];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
remImage = nil;
ciImage = nil;
//
return result;
}
source d'informationauteur tagyro
Vous devez vous connecter pour publier un commentaire.
Voir le
CIContext
documentation pour createCGImage:fromRect:D'une réponse à une question similaire: https://stackoverflow.com/a/10472842/474896
Aussi puisque vous avez un
CIImage
pour commencer, vous pouvez utiliserCIFilter
à fait recadrer votre image.Swift 3.1
Voici une belle petite fonction pour convertir un
CIImage
àCGImage
en Swift.Après quelques recherches sur google j'ai trouvé cette méthode qui convertit un CMSampleBufferRef à un CGImage:
(mais j'ai fermé l'onglet donc je ne sais pas où je l'ai eu à partir de)