我需要編輯圖像的像素原始二進制值。爲此,我這樣做了:在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