Skip to content

Instantly share code, notes, and snippets.

View krossford's full-sized avatar
🏠
have a nice day

kross krossford

🏠
have a nice day
View GitHub Profile
@krossford
krossford / gist:fece10384b8dac5da134fd3539496618
Created November 24, 2020 10:26
IOS UILabel starting or ending with extra whitespaces.
uiLabel.text = "\u{00a0} Hello World \u{200c}"
@krossford
krossford / Python_Pillow_Image_Operation.py
Created July 23, 2020 07:55
Python Pillow 图像操作
from PIL import Image
img = Image.open("cat.jpg")
# 图片尺寸
print(img.size)
img.size[0] # 宽度
img.size[1] # 高度
# 操作像素
private func createTexture(sampleBuffer: CMSampleBuffer, planeIndex: Int, pixelFormat: MTLPixelFormat) throws -> MTLTexture {
guard let cvImageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
throw MyError.normal
}
let isPlanar = CVPixelBufferIsPlanar(cvImageBuffer)
let width = isPlanar ? CVPixelBufferGetWidthOfPlane(cvImageBuffer, planeIndex) : CVPixelBufferGetWidth(cvImageBuffer)
let height = isPlanar ? CVPixelBufferGetHeightOfPlane(cvImageBuffer, planeIndex) : CVPixelBufferGetHeight(cvImageBuffer)
var cvMetalTexture: CVMetalTexture?
CVMetalTextureCacheCreateTextureFromImage(nil, _textureCache!, cvImageBuffer, nil, pixelFormat, width, height, planeIndex, &cvMetalTexture)
sampleBuffer: CMSampleBuffer
guard let formatDesc = CMSampleBufferGetFormatDescription(sampleBuffer) else { return }
let dimension = CMVideoFormatDescriptionGetDimensions(formatDesc)
var ciImage = CIImage(cvImageBuffer: cvImageBuffer, options: nil)
// 负数是顺时针旋转
ciImage = ciImage.transformed(by: CGAffineTransform(rotationAngle: -1 * CGFloat.pi / 2))