1

この素晴らしいチュートリアルを使用して、phonegap を使用して IOS 用の Instagram のようなアプリを作成しています。

うまく機能しますが、写真をダウンロードして保存し、プラグインに渡そうとするとエラーが発生します

私のエラーは次のとおりです。

Dec 19 14:36:58 iPhone-of-your-home Imagefilter [17418] <Error>: ImageIO: CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource failed with error code -15.

私のプラグインのコードは次のとおりです。

-(void)none:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options
{
    //I think that here is the problem
    NSString *filePath = [options objectForKey:@"image"];
    // CREATE NSURL
    NSURL *fileNameAndPath = [NSURL URLWithString:filePath];
    NSLog(@"FILE PATH: %@",fileNameAndPath);

    // DEFINE OUR CIImage
    CIImage *beginImage = 
    [CIImage imageWithContentsOfURL:fileNameAndPath];
    CIContext *context = [CIContext contextWithOptions:nil];

    // DO ALL MODIFICATIONS HERE.


    CGImageRef cgimg = 
    [context createCGImage:beginImage fromRect:[beginImage extent]];
...
...
}

画像をキャプチャして渡すと、コンソールからわかるように、次のような URL があります。

file://localhost/var/mobile/Applications/EFDAF913-6287-4B46-B2FE-F9B0D3349DDF/tmp/cdv_photo_031.jpg

ダウンロードしたファイルには次のようなURLがありますが

/var/mobile/Applications/EFDAF913-6287-4B46-B2FE-F9B0D3349DDF/Documents/img18.png
4

1 に答える 1

0

img18.pngファイルはDocumentsディレクトリにあります。

まず、以下を使用してそのポインタを取得する必要があります。

NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

次に、パスを作成します。

NSString *path = [docsDirectory stringByAppendingPathComponent:@"img18.png"];

それ以外の場合は、コード内で問題がどこにあるかをすでに知っています。

于 2013-02-07T14:48:32.597 に答える