我需要编辑图像的像素原始二进制值。为此,我这样做了:在Swift中将图像十六进制转储转换为二进制数组的更快捷方式
我获得了包含图像的十六进制转储的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
}
我很好奇,如果你最终要在'0's和'1's二进制表示,为什么将它存储在'String'中? – Alexander
'imageData' *是二进制数据。然后你用这个数据的十六进制描述创建一个字符串,然后再次提取字节...... –
当你说你需要编辑原始二进制值时,你究竟如何编辑它们?你一次需要一定范围的价值吗? – ColGraff