2015-01-29 3 views
1

나는 그림 위에 텍스트를 갖고 싶습니다. 이를 위해 UIImageView 및 UITextView를 사용하여 UIView를 하위 뷰로 만드는 메서드를 작성했습니다. UIView의 그래픽 컨텍스트에서 UIImage를 얻습니다. 카메라 롤에 이미지를 저장하면 정상적으로 작동합니다. 하지만 이미지를 NSData로 변환하고 서버에 업로드 한 다음 NSData를 다운로드하고 UIImage로 다시 변경하면 이미지가 비어있게됩니다. UIImageview와 UITextView를 결합하여 UIImage 만들기

+(UIImage*)imageWithImage:(UIImageView *)sourceImageView addTextFromTextView:(UITextView *)textView { 

    UIView *parentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [parentView addSubview:sourceImageView]; 
    [parentView addSubview:textView]; 
    [parentView sizeToFit]; 

    UIGraphicsBeginImageContext([parentView bounds].size); 
    [[parentView layer] drawInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return outputImage; 
} 

아래의 코드는 잘 작동하고

UIImageWriteToSavedPhotosAlbum([UIImage imageWithImage:self.imageView addTextFromTextView:self.textView], nil, nil, nil); 

그러나 카메라 롤에 대한 올바른 이미지로,이 코드는

NSData *imageData = UIImageJPEGRepresentation([UIImage imageWithImage:self.imageView addTextFromTextView:self.textView], 1.0); 
UIImageWriteToSavedPhotosAlbum([UIImage imageWithData:imageData], nil, nil, nil); 

나는 감사 카메라 롤에 빈 이미지를 저장하여 사전에 도움을 청하십시오.

답변

0

나는 이름에서 추측 할 수 있지만 self.imageView는 UIImageView 객체를 보유하고있는 UIImageView 속성입니다.

그러나 UIImageJPEGRepresentation 함수는 UIImageView 개체가 아니라 첫 번째 매개 변수로 UIImage 개체를 필요로합니다. 따라서 전달 된 매개 변수가 잘못되어 아무 것도 반환하지 않습니다. UIImage와 UIImageView는 서로 다른 두 가지입니다.

+0

예 및 첫 번째 매개 변수로 UIImageJPEGRepresentation 함수에 UIImage를 전달했습니다. [UIImage imageWithImage : self.imageView addTextFromTextView : self.textView]는 코드에서 볼 수있는 것처럼 UIImage를 반환합니다. – Subash

관련 문제