を使用せずに NSData として格納されている UIImage のサイズ (CGSize) を取得でき[UIImage imageWithContentsOfFile:];
ますか? これを行うことができれば、私のコードはより速く実行されます。
4 に答える
CoreGraphics や UIKit ではできません。バイナリ ストリームを検査する必要があります。幸いなことに、他の多くの言語で以前に行われました。簡単なグーグルは、ファイルタイプ(jpg、bmp、png、およびgif)を決定し、画像の寸法を引き出すRubyでのこの実装を見つけました。NSData を使用して Objective-C に変換するのは簡単です。関数から始めparse_size
ます。
NSData として保存された画像は、png、jpg、tiff、gif、raw などの任意の数の形式にすることができます。バイトの塊しかない場合、UIImage ではありません。したがって、一般に、NSData オブジェクトとして格納された画像のサイズを決定することはできません。
すべての NSData 画像が同じ形式 (PNG など) で保存されていることを保証できる場合は、PNG データ ファイル形式に基づいて NData をスキャンしてサイズ情報を取得できます。これは、データから UIImage を作成するよりも効率的かもしれません。しかし、明らかにそれはより多くの作業です。
保存時にサイズ情報を何らかのDBに書き込みます。
ディスク上のファイルのサイズを取得するには、次を使用できますNSFileManager attributesOfItemAtPath:error:
便利なCGImageSource API が見つかるかもしれません。Ole Begemann には、このトピックに関する優れたチュートリアルがあります。