Nice programing

문서 디렉토리에 이미지 저장 및 이메일 첨부 파일 검색

nicepro 2020. 10. 27. 23:28
반응형

문서 디렉토리에 이미지 저장 및 이메일 첨부 파일 검색


NSBundle& DocumentDirectory 데이터를 알아내는 데 문제 가 있습니다. 저장중인 카메라 사진 " imageView "가 NSDocumentDirectoy있으며 이메일에 첨부하기 위해 검색하려고합니다.

여기 저장 코드 :

- (IBAction)saveImage {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    UIImage *image = imageView.image; // imageView is my image from camera
    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:savedImagePath atomically:NO];   
}

다음은 새로운 데이터 가져 오기 코드입니다.

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease];
    [picker addAttachmentData:myData mimeType:@"image/png" fileName:@"savedImage"];

- (IBAction)getImage {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
}

시작해야합니다!


스위프트 3

// Create a URL
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
let imageURL = documentsURL?.appendingPathComponent("MyImageName.png")

// save image to URL
let myImage = imageView.image! // or wherever you have your UIImage

do {
    try UIImagePNGRepresentation(myImage)?.write(to: imageURL!)
} catch {}


// Use the URL to retrieve the image for sharing to email, social media, etc.
// docController.URL = imageURL
// ...

간결함을 위해 일부 옵션을 강제로 풀었습니다. guard또는 if let코드에서 사용하십시오 .


각 iPhone 앱이 자체 샌드 박스에 있기 때문에 장치 전체 문서 폴더에 액세스 할 수 없습니다. 이메일에 이미지를 첨부하려면 자신의 문서 폴더에 이미지를 저장하십시오. 사용해보십시오 [@ "~ / 문서"StringByExpandingTildeInPath은] 나를 위해 일한다는 - 폴더를 사용자의 로컬 문서를 얻을 수 있습니다. 이메일에 이미지를 첨부하는 데 사용하는 기술이 올바른 것 같습니다.

도움이 되길 바랍니다.


이걸로 해봐 :

 -(void)setProfilePic
{
  NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [docpaths objectAtIndex:0];
  NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:@"Image.png"];

  NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imagePath]];
  UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
  [profilePic_btn setBackgroundImage:thumbNail forState:UIControlStateNormal];
}

참고 URL : https://stackoverflow.com/questions/2037432/saving-image-to-documents-directory-and-retrieving-for-email-attachment

반응형