-1

我想从相机中获取照片并使用它的名称保存在数据库中...

我已经使用了这些代码。我已成功拍照并添加到图像视图中,但现在我无法获取其名称(字符串值)

ImagePicker = [[UIImagePickerController alloc] init];
            ImagePicker.delegate = self;
            ImagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            [self presentModalViewController:ImagePicker animated:YES];

- (void)imagePickerController:(UIImagePickerController *)picker
        didFinishPickingImage:(UIImage *)image
                  editingInfo:(NSDictionary *)editingInfo
{
    [ImagePicker dismissModalViewControllerAnimated:YES];
    imageview.hidden=NO;
    imageview.image = image;

    NSDate *today = [NSDate date];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
    NSString *dateString = [dateFormat stringFromDate:today];
    // save image in document directoties
    UIImage *image1=imageview.image;


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
    NSData *pngData = UIImageJPEGRepresentation(image1,100.0);
    NSString *filePath;
    filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"image%@.jpg",dateString]]; //Add the file name
    [pngData writeToFile:filePath atomically:YES]; //Write the file
    NSLog(@"File Path is %@",filePath);

    if (![[NSFileManager defaultManager] fileExistsAtPath:filePath])  //Optionally check if folder already hasn't existed.
    {
        NSLog(@"Unable to create Folder in Documents Directory");

    }

}
4

2 回答 2

-1

尝试

-(void)imagePickerController:(UIImagePickerController *)pickerr didFinishPickingMediaWithInfo:(NSDictionary *)info { [pickerr dismissModalViewControllerAnimated:YES]; //因为我们保持allowEditing = YES,所以我们使用UIImagePickerControllerEditedImage 否则使用UIImagePickerControllerOriginalImage UIImage *image = [info objectForKey:@"UIImagePickerControllerEditedImage"];

[self saveImage:image];

}

  • (void)saveImage:(UIImage*)imagepk

{

Database *dbObj = [Database Connetion];

//NSLog(@"image width is %f",imagepk.size.width);



NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.jpg",appDelegate.activeId]];

[dbObj updateImage:[NSString stringWithFormat:@"%d.jpg",appDelegate.activeId] :appDelegate.activeId];


UIImage *image = imagepk; // imageView is my image from camera
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];

}

于 2013-10-26T11:26:17.367 回答
-1

我想知道确切的图像名称不会是一个问题,而是为挑选的图像获取一个唯一的名称将解决您的目的,以便您可以保存图像并通过其名称跟踪它。也许这可以帮助你

//Fetch the Maximum id from DB
NSString* strSelect= [NSString stringWithFormat:@"Select MAX(id) from TableName"]; 
  NSMutableArray*  arr_test  = [[database executeQuery:strSelect]mutableCopy];

   //Check if it is the first Image or not
   if ([[[arr_test objectAtIndex:0]valueForKey:@"MAX(id)"]isKindOfClass:[NSNull class]])
        img_id = 1;

    else{
        NSString *strtest = [[arr_test objectAtIndex:0] valueForKey:@"MAX(id)"];
        img_id=[strtest intValue]+1;
    }

//Give the Image Name with Unique ID
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/image%d.jpg",img_id]]; 
于 2013-10-26T10:56:40.467 回答