2017-02-02 4 views
1

Gibt es eine Möglichkeit CIImage in NSData zu konvertieren ohne CIImage in UIImage oder CGImage zu konvertieren?Gibt es eine Möglichkeit, CIImage in NSData zu konvertieren, ohne CImage in UIImage oder CGImage zu konvertieren?

Ich versuche, eine Kamera-App zu machen. Bei der Bildaufnahme verarbeite ich ein Bild mit CIImage, um einen Filtereffekt für das Bild zu erhalten, bearbeite einige Metadaten und speichere es mit PHAssetCreationRequest.

Während dieses Prozesses ändere ich imagedata zu CIImage, CIImage zu UIImage, UIImage zu NSData. Anscheinend braucht es Zeiten und ich möchte etwas Zeit sparen.

So, Gibt es eine Möglichkeit CIImage-NSData zu konvertieren, ohne CIImage-UIImage oder CGImage Umwandlung?

Antwort

3

CIContext hat eine Methode, JPEGRepresentationOfImage: color: Optionen, um NSData zu konvertieren, ohne zu UIImage zu konvertieren.

CIContext *contextToUse = ...; 
NSData *imageData = [contextToUse JPEGRepresentationOfImage:image colorSpace:... options:@{}]; 
+0

es funktioniert! Vielen Dank. Allerdings ist es nicht viel schneller als das, was ich erwartet habe. 'CIllage' zu' CGImage' zu ​​'NSData' Prozedur ist ein bisschen schneller als diese Methode. – TKang

+0

Nun ... hinter den Kulissen sind alle Bilder nur 3D-Arrays. Vielleicht möchten Sie aber auch mit verschiedenen CIContext-Typen testen. –

+0

Okay, ich werde es versuchen, Vielen Dank! – TKang

Verwandte Themen