Wie kann ich eine CGImage
in eine CVPixelBuffer
in swift konvertieren?swift - CGBild zu CVPixelBuffer
Ich bin mir einer Reihe von Fragen bewusst, die versuchen, das Gegenteil zu tun, und von einigen objektiven C Antworten, wie this one, aber ich konnte sie nicht dazu bringen, in swift zu arbeiten. Hier ist die nächste, die ich habe:
func pixelBufferFromCGImage(image: CGImage) -> CVPixelBuffer {
var pxbuffer: CVPixelBuffer? = nil
let options: NSDictionary = [:]
let width = image.width
let height = image.height
let bytesPerRow = image.bytesPerRow
let dataFromImageDataProvider = image.dataProvider!.data
let x = CFDataGetBytePtr(dataFromImageDataProvider)
CVPixelBufferCreateWithBytes(
kCFAllocatorDefault,
width,
height,
kCVPixelFormatType_32ARGB,
CFDataGetBytePtr(dataFromImageDataProvider),
bytesPerRow,
nil,
nil,
options,
&pxbuffer
)
return pxbuffer!;
}
(dies nicht kompilieren, weil CVPixelBufferCreateWithBytes
excepts ein UnsafeMutablePointer und CFDataGetBytePtr(dataFromImageDataProvider)
ist ein UnsafePointer<UIint8>!
)
Wenn Sie wissen, wie dies in thi Objective-C, warum nicht schreiben zu tun s eine Methode _in_ Objective-C und mit den Dingen weitermachen? – matt
Weil ich ein Projekt in Swift starte, und ich bin bereit, mir die Zeit zu nehmen, Dinge in diese Sprache zu bringen, und ich kenne auch Objective-C nicht (und bin auch nicht bereit, mehr zu lernen, was ich wirklich habe to) – Guig
So ist die Frage, wie man einen UnsafePointer in einen UnsafeMutablePointer umwandelt? Weil das nicht sehr schwierig ist. – matt