mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix crash
This commit is contained in:
parent
34de467c35
commit
375e7bb8f6
@ -71,7 +71,9 @@ public func adjustSaturationInContext(context: DrawingContext, saturation: CGFlo
|
|||||||
vImageMatrixMultiply_ARGB8888(&buffer, &buffer, &matrix, divisor, nil, nil, vImage_Flags(kvImageDoNotTile))
|
vImageMatrixMultiply_ARGB8888(&buffer, &buffer, &matrix, divisor, nil, nil, vImage_Flags(kvImageDoNotTile))
|
||||||
}
|
}
|
||||||
|
|
||||||
private func generateGradient(size: CGSize, colors: [UIColor], positions: [CGPoint], adjustSaturation: CGFloat = 1.0) -> UIImage {
|
private func generateGradient(size: CGSize, colors inputColors: [UIColor], positions: [CGPoint], adjustSaturation: CGFloat = 1.0) -> UIImage {
|
||||||
|
let colors: [UIColor] = inputColors.count == 1 ? [inputColors[0], inputColors[0], inputColors[0]] : inputColors
|
||||||
|
|
||||||
let width = Int(size.width)
|
let width = Int(size.width)
|
||||||
let height = Int(size.height)
|
let height = Int(size.height)
|
||||||
|
|
||||||
@ -146,10 +148,29 @@ private func generateGradient(size: CGSize, colors: [UIColor], positions: [CGPoi
|
|||||||
b = b + distance * rgb[i * 3 + 2]
|
b = b + distance * rgb[i * 3 + 2]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if distanceSum < 0.00001 {
|
||||||
|
distanceSum = 0.00001
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixelB = b / distanceSum * 255.0
|
||||||
|
if pixelB > 255.0 {
|
||||||
|
pixelB = 255.0
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixelG = g / distanceSum * 255.0
|
||||||
|
if pixelG > 255.0 {
|
||||||
|
pixelG = 255.0
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixelR = r / distanceSum * 255.0
|
||||||
|
if pixelR > 255.0 {
|
||||||
|
pixelR = 255.0
|
||||||
|
}
|
||||||
|
|
||||||
let pixelBytes = lineBytes.advanced(by: x * 4)
|
let pixelBytes = lineBytes.advanced(by: x * 4)
|
||||||
pixelBytes.advanced(by: 0).pointee = UInt8(b / distanceSum * 255.0)
|
pixelBytes.advanced(by: 0).pointee = UInt8(pixelB)
|
||||||
pixelBytes.advanced(by: 1).pointee = UInt8(g / distanceSum * 255.0)
|
pixelBytes.advanced(by: 1).pointee = UInt8(pixelG)
|
||||||
pixelBytes.advanced(by: 2).pointee = UInt8(r / distanceSum * 255.0)
|
pixelBytes.advanced(by: 2).pointee = UInt8(pixelR)
|
||||||
pixelBytes.advanced(by: 3).pointee = 0xff
|
pixelBytes.advanced(by: 3).pointee = 0xff
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user