ALAssetsLibraryとALAssetをNSDataオブジェクトの形式で直接使用してイメージを抽出します。ALAssetsLibraryとALAssetを使用してNSDataとしてイメージを取り出します
NSURLを使用して、次のように画像を取り出します。
NSURL *referenceURL =newURL;
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:referenceURL resultBlock:^(ALAsset *asset)
{
UIImage *copyOfOriginalImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
}
ここではイメージをUIImageとして取り上げますが、イメージをNSDataとして直接取得する必要があります。
私はUIImageで画像を撮ると(私はそれを読んでいます)、画像のEXIFの詳細をすべて失ってしまったので、これをしたいと思います。代わりに、この
NSData *webUploadData=UIImageJPEGRepresentation(copyOfOriginalImage, 0.5);
この手順を行うので、私は直接のNSDataとして画像を抽出したい理由です
は私がすべてのEXIFの詳細を失うことになります。
お願いします。このコードの使用
をあなたの素晴らしい提案をいただき、ありがとうございます。 しかし、画像を圧縮する方法はありますか? NSDataとして使用する前に。 –
私が正しく理解すれば、イメージはすでに圧縮されています。デフォルトのプレゼンテーションはおそらくJPEGまたはPNGになります – HeikoG
同じテクニックで複数のALAssetsをインポートする際にこのテクニックに問題があります。バッファが次のアイテムに再利用されたようです。 –