0

AVCaptureDeviceを使用して iPhone カメラから画像を取得する iOS アプリケーションを開発しています。

キャプチャされた画像のピクセル密度 (ppi) は 72ppi のようです。

1.これらの画像をさらに処理するために、画像の最小ピクセル密度が 300ppi であることを想定しているバックエンド クラウド サーバーに送信する必要があります。

2.また、iPhone 5 のネイティブ カメラで撮影した画像のピクセル密度も 72 ppi であることがわかります。

3.AVCaptureファウンデーションに撮影した画像のピクセル密度を設定する設定があるかどうか、または撮影した画像のピクセル密度を 72 ppi から 300 ppi に増やす方法があるかどうかを知る必要があります。

どんな助けでも大歓迎です。

4

2 に答える 2

1

@Codoが指摘したように、ピクセル密度は、画像が出力されるまで(ディスプレイ、プリンター、RIPなどに)無関係です。画像データではなく、メタデータです。ただし、これを理解する知恵のないサードパーティ サービスを扱っている場合は、画像をキャプチャした後、保存する前に画像メタデータを編集する必要があります。

こうやって:

captureStillImageAsynchronouslyFromConnection:stillImageConnection
    completionHandler:^(CMSampleBufferRef imageDataSampleBuffer 
    NSError *error) {
  CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(kCFAllocatorDefault,
      imageDataSampleBuffer,
      kCMAttachmentMode_ShouldPropagate);
  NSMutableDictionary *metadata = [[NSMutableDictionary alloc]
      initWithDictionary:(__bridge NSDictionary*)metadataDict];
  CFRelease(metadataDict);
  NSMutableDictionary *tiffMetadata = [[NSMutableDictionary alloc] init];
  [tiffMetadata setObject:[NSNumber numberWithInt:300]
      forKey(NSString*)kCGImagePropertyTIFFXResolution];
  [tiffMetadata setObject:[NSNumber numberWithInt:300] forKey:
      (NSString*)kCGImagePropertyTIFFYResolution];
  [metadata setObject:tiffMetadata forKey:(NSString*)kCGImagePropertyTIFFDictionary];
  .
  .
  .
}];

次に、要件に応じて、 にフィードmetadataするか、プライベート アプリ フォルダーに保存します。writeImageToSavedPhotosAlbum:metadata:completionBlockwriteImageDataToSavedPhotosAlbum:metadata:completionBlock

于 2014-04-21T15:48:48.800 に答える