我需要编辑图像的像素原始二进制值。为此,我执行了以下步骤:
我获得了包含图像十六进制转储的 CFData。
我将获得的 CFData 转换为字符数组(使用 convertToArray 函数)
之后,我使用 convertToBinaryString 函数来获取一个字符串,该字符串表示十六进制转储的以 2 为底的值。
它确实有效,并且可以处理小文件,但是当涉及到较大的文件时,它需要很长时间才能完成。我在寻找更快方法的斗争中失败了。你可以帮帮我吗?
下面你可以看看我需要优化的功能:
func convertToArray(imageData : CFData) -> Array<Character>{
let arrayData : Array<Character> = Array(String(NSData(data: imageData)).characters)
print("Array : ")
Swift.print(arrayData)
return arrayData
}
func convertToBinaryString(array : Array<Character>) -> String{
let numberOfChars = array.count
var binaryString = convertHexToBinary(array[1])
for character in 2...numberOfChars - 2{
binaryString = binaryString + convertHexToBinary(array[character])
}
// print("BINARRY ARRAY : ")
// print(binaryString)
return binaryString
}