第一种:
CVMetalTextureCacheCreate(
kCFAllocatorDefault,
nil,
device!,
nil,
&textureCache)
let pixelBufferAttri = [kCVPixelBufferIOSurfacePropertiesKey: [:]]
let s = CVPixelBufferCreate(
kCFAllocatorDefault,
720,
1280,
kCVPixelFormatType_32BGRA,
pixelBufferAttri,
&pixelBuffer)
let result = CVMetalTextureCacheCreateTextureFromImage(
kCFAllocatorDefault,
textureCache!,
offlinePixelBuffer!,
nil,
self.colorPixelFormat,
1080,
1920,
0,
&texture)
第二种:
var outPixelbuffer: CVPixelBuffer?
if let datas = targetTexture.texture.buffer?.contents() {
CVPixelBufferCreateWithBytes(kCFAllocatorDefault, targetTexture.width,
targetTexture.height, kCVPixelFormatType_64RGBAHalf, datas,
targetTexture.texture.bufferBytesPerRow, nil, nil, nil, &outPixelbuffer);
}