5

JPEG のメタデータにテキスト コメントを追加して、iPhone アプリ内から読み戻せるようにしたいと考えています。

iOS4にはEXIF情報のサポートが含まれているため、これはかなり簡単だと思いました。そこで、used AnalogExif という Windows ツールを使用してメタデータを追加し、次を使用してアプリから読み返しました。

NSData *jpeg = UIImageJPEGRepresentation(myUIImage,1.0);

CGImageSourceRef  source = CGImageSourceCreateWithData((CFDataRef)jpeg, NULL);
NSDictionary *metadata = (NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL);

NSMutableDictionary *metadataAsMutable = [[metadata mutableCopy]autorelease];
[metadata release];

NSMutableDictionary *EXIFDictionary = [[[metadataAsMutable objectForKey:(NSString *)kCGImagePropertyExifDictionary]

そして、それは機能します...ある程度:)

メタデータ ディクショナリに返されるのは、次のようなものです。

(gdb) po metadata
{
   ColorModel = RGB;
   Depth = 8;
   Orientation = 1;
   PixelHeight = 390;
   PixelWidth = 380;
   "{Exif}" =     {
      ColorSpace = 1;
      PixelXDimension = 380;
      PixelYDimension = 390;
   };
   "{JFIF}" =     {
      DensityUnit = 0;
      JFIFVersion = (
        1,
        1
      );
      XDensity = 1;
      YDensity = 1;
   };
   "{TIFF}" =     {
      Orientation = 1;
   };
}

しかし、それは私が得ることができるすべてです!私は見つけることができるすべての EXIF エディター (主に PC のものと言うべきです) で JPEG ファイルを編集しました。JPEG コメントと EXIF キャプションとキーワードを追加したと彼らはすべて言いますが、その情報はどれも Apple SDK から利用できるようには見えません。私のアプリで。

誰かが jpeg のメタデータにテキスト フィールドを設定し、iPhone アプリから読み返すことができましたか?

できればサードパーティのライブラリを使いたくありませんでした

よろしくお願いします

4

1 に答える 1

4

あなたは、iOSがあなたが見ているものよりも多くのメタデータをサポートしていると考えるのは正しいです。UIImageを作成してからJPEGに変換し直したときに、データが失われた可能性があります。試してみるNSData *jpeg = [NSData dataWithContentsOfFile:@"foo.jpg"]と、EXIFが表示されます。

于 2011-09-30T16:04:50.247 に答える