0

「AddThis」と呼ばれる IOS プラグインを使用してそのファイルを共有できるように、UIImage を jpeg や png などの形式に変換したいと考えています。UIImage だけを使用して共有しようとしましたが、プラグインはそれをサポートしていないため、最初に UIImage を jpeg に変換する方法を見つけてから、次のコードに追加する必要があります。

[AddThisSDK shareImage:[UIImage imageNamed:@"test.jpg] withService:@"twitter" title:@"I'm sharing something" description:@"Random description of image"];

shareImage:[UIImageNamed:@""]そうしないとエラーが発生します。

これまでのところ、を使用して変換しようとしUIImageJPEGRepresentationましたが、適切に変換したとは思いません。正直に言うと、画像を撮って直接変換するのと同じようにしようとしました:

 NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];

[UIImageJPEGRepresentation(shareImage, 1.0) writeToFile:jpgPath atomically:YES];

NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];

NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];

NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);

これは正しい方法ではないと何かが教えてくれます...主に私がそれを機能させることができなかったからです。

どんな種類の助けにも本当に感謝します!

基本的に、UIView を変換して UIImage を作成しました。

UIGraphicsBeginImageContext(firstPage.bounds.size); 
[firstPage.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

単純に入れようとしたときに、jpeg形式にしたい

[AddThisSDK shareImage:image withService:@"twitter" title:@"I'm sharing something" description:@"Random description of image"]; 

それは私にエラーを与える

4

1 に答える 1

1

UIImage画像には独自の内部表現があるため、jpegデータとpngデータのどちらをロードするかは関係ありません。

関心のあるAPI呼び出しにはUIImage、最初のパラメーターとしてが含まれているため、

[AddThisSDK shareImage:[UIImage imageNamed:@"photo_boom.jpg"] 
           withService:@"twitter" 
                 title:@"I'm sharing something" 
           description:@"Random description of image"];

photo_boom.jpgがバンドルに含まれていれば、機能するはずです。以前に保存した画像をフォルダからロードする場合は、次のようなものが必要になります。

NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];
UIImage * myImage = [UIImage imageWithContentsOfFile: jpgPath];

[AddThisSDK shareImage:myImage
           withService:@"twitter" 
                 title:@"I'm sharing something" 
           description:@"Random description of image"];

それでもうまくいかない場合は、AddThisSDK行にブレークポイントを設定して、?の値を確認してみましたimageか?コンソールpo imageに入力します。

于 2012-04-23T12:11:44.720 に答える