이미지의 알파를 계산하는 기능이 있습니다. 하지만 iPhone 5에서 충돌이 발생했으며 iPhone 6 이상에서는 문제가 없습니다.알파 받기 이미지 스위프트
private func alphaOnlyPersentage(img: UIImage) -> Float {
let width = Int(img.size.width)
let height = Int(img.size.height)
let bitmapBytesPerRow = width
let bitmapByteCount = bitmapBytesPerRow * height
let pixelData = UnsafeMutablePointer<UInt8>.allocate(capacity: bitmapByteCount)
let colorSpace = CGColorSpaceCreateDeviceGray()
let context = CGContext(data: pixelData,
width: width,
height: height,
bitsPerComponent: 8,
bytesPerRow: bitmapBytesPerRow,
space: colorSpace,
bitmapInfo: CGBitmapInfo(rawValue: CGImageAlphaInfo.alphaOnly.rawValue).rawValue)!
let rect = CGRect(x: 0, y: 0, width: width, height: height)
context.clear(rect)
context.draw(img.cgImage!, in: rect)
var alphaOnlyPixels = 0
for x in 0...Int(width) {
for y in 0...Int(height) {
if pixelData[y * width + x] == 0 {
alphaOnlyPixels += 1
}
}
}
free(pixelData)
return Float(alphaOnlyPixels)/Float(bitmapByteCount)
}
제발 도와주세요. 고맙습니다. 죄송합니다 iOS 코딩 초보자입니다.
어떤 종류의? – Sulthan
당신은 항상 모든 픽셀을 반복하므로, let alphaOnlyPixels = Array (pixelData.filter {$ 0 == 0}). count' – Sulthan
EXC_BASS_ACCESS로 충돌이 발생했습니다. 스크린 샷을 캡처했습니다 -> [link] (http://imgur.com/a/QT3wk) – Quyen