3

これは簡単なことだと思いますが、見つけることができません。

CGImageDestinationRef関数を使用して作成しようとしていますCGImageDestinationCreateWithDataが、nil が返されます。

関数のドキュメント:

http://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGImageDestination/Reference/reference.html#//apple_ref/c/func/CGImageDestinationCreateWithData

関数は非常に単純ですが、オブジェクトを返すようには見えません。私は ARC クラスにいるので、関数の周りにブリッジ ラッパーがあります。

私のコードスニペット:

NSMutableData *data = [[NSMutableData alloc] init];
CGImageDestinationRef imageDestination = nil;

imageDestination = (__bridge CGImageDestinationRef) CFBridgingRelease(CGImageDestinationCreateWithData ((__bridge CFMutableDataRef)data, (__bridge CFStringRef)type, 1, NULL));

if (!imageDestination)
    NSLog(@"This is always called. :-(");

私が愚かなことをしているのを見つけた人からの助けをいただければ幸いです!

4

1 に答える 1

3

私はそれを解決し、将来他の誰かを助けるかもしれないので、ここに答えを投稿しています。

@"image/jpg" に設定されたタイプがありますが、これは機能していないようです (ドキュメントでは推奨されています)。

タイプを @"public.jpeg" に変更すると、期待どおりに機能するようになりました。

以下のコメントでジムのヒントを使用して、これは私がURLから正しいUTIタイプを見つけるためにやったことです:

NSString *uti = CFBridgingRelease(UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (__bridge CFStringRef)[NSString stringWithFormat:@"image/%@", url.pathExtension], kUTTypeImage));

于 2012-07-03T10:14:00.300 に答える