2016-12-23 27 views
0

私はSwiftの圧縮ライブラリを使用して画像をNSDataとして圧縮しています。Swiftで 'compression_encode_buffer'を使用するには?

var imageCompressed:NSData 
compression_encode_buffer(imageCompressed ,800000 , imageSelected , size , NULL , COMPRESSION_LZMA) 

私は次のエラーメッセージを取得しています: これはコードで予想引数の型にタイプのNSDataの値を変換できませんマットが言ったように

UnsafeMutablePointer

+0

。それは不変です! – matt

+0

また、Swift 2をまだ使用していますか? – matt

+0

また、これは画像を圧縮する良いアルゴリズムではありません。必要に応じてJPEG、PNG、HEIFを使用してください。 – skagedal

答えて

1

あなたがすることはできませんそれは不変なので、NSDataオブジェクトに書き込みます。代わりにSwift Standard Library Dataタイプを使用することを強くお勧めします。その後、withUnsafeMutableBytesに電話して、閉鎖の中でやりたいことをすることができます。

1

私が何をしたいことは、この(imageSelectedimageCompressedはスウィフト3つのデータオブジェクトであると想定されている)のようなものだと思う:あなたはNSDataのに書き込むことはできません

imageSelected.withUnsafeBytes {(fromBytes: UnsafePointer<UInt8>) -> Void in 
    imageCompressed.withUnsafeMutableBytes {(toBytes: UnsafeMutablePointer<UInt8>) -> Void in 
     compression_encode_buffer(toBytes, toSize, fromBytes, fromSize, nil, COMPRESSION_LZMA) 
    } 
} 
+0

compression_encode_bufferのパラメータを教えてもらえますか? –

+0

それはもう一つの質問でしょう。あなたが尋ねた質問に私は答えたと思う。 – matt

+0

そうですが、toBytes、toSIze、fromBytes、fromSizeとは何ですか? –

関連する問題