私は単純なイメージファイルサイズ縮小タスクを行っていますが、この問題があります。 JPEGにノーロスオプションを使用すると、ファイルサイズは画像の元のNSData(3倍)になります(同じ解像度)。なにか提案を?私が同じデータ長を取得するために0.8品質の損失を取らなければならないようだNSDataからNSDataにUIImageに戻って結果の長さが3倍になる
2604768 //original length
8112955 //new length if compression = 1
2588870 //new length if compression = 0.8
:
let data = someImageData
print(data.length)
let image = UIImage(data: data)!
let newImageData = UIImageJPEGRepresentation(image, 1)
print(newImageData.length)
let newImageData = UIImageJPEGRepresentation(image, 0.8)
print(newImageData.length)
と出力:ここ
は簡単なコードです。私は何か見落としてますか?ピーズヘルプ。
編集:データをUIImageに変換してからUIImageJPEGRepresentation(image、1)に変換すると、新しいデータの長さのサイズが毎回増加します。しかし、UIImageJPEGRepresentation(image、0.8)を使用すると、新しいデータの長さのサイズは少し小さくなりますが、化合物の修飾の損失が問題になります。あなたのコードは、行とメモリに画像を抽出/解凍されてやっている何
8112955.になりますしかし、それはまだ4年以上経っても解決されています... – JDG