イメージのピクセルの生のバイナリ値を編集する必要があります。このため、私はこのステップを実行しました:Swiftのイメージヘックスダンプをバイナリ配列に変換する方法をより速く
イメージの16進ダンプを含むCFDataを取得しました。私はCFDataはその後(convertToArray関数を使用)文字の配列に
を得変換
、Iヘキサダンプのベース2値を表す文字列を取得するためにconvertToBinaryString関数を用います。
小さなファイルの場合は機能しますが、大きなファイルの場合は処理が永久に終わります。私はより速い方法を見つけるのに苦労しました。私たちを手伝ってくれますか?ダウンここ
私は最適化に必要な機能の外観をとることができます。
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'は*バイナリデータです。次に、そのデータの16進数の記述を含む文字列を作成し、再度バイトを抽出します。 –
生のバイナリ値を編集する必要があると言うとき、それらをどのくらい正確に編集していますか?一度に一定の範囲の値が必要ですか? – ColGraff