Create UIImage from a UIImageView

孤者浪人 提交于 2019-12-05 07:12:44

问题


I create a UIImageView with two UILabel as subviews of it:

 UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, [[UIScreen mainScreen] bounds].size.height)];
    img.backgroundColor=self.view.backgroundColor;

    UILabel *textOne=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 290, 250)];
    textOne.text=_textOneLabel.text;
    textOne.textColor=_textOneLabel.textColor;

    UILabel *textTwo = [[UILabel alloc] initWithFrame:CGRectMake(100,180,200,100)];
    textTwo.text=_textTwoLabel.text;
    textTwo.textColor=_textTwoLabel.textColor;

    [img addSubview:textOne];
    [img addSubview:textTwo];

    UIImageWriteToSavedPhotosAlbum(img.image, nil, nil, nil); //img.image is null

I want to create a UIImage to save it in the camera roll with the UIImageView and the 2 created UILabel. img.image returns null because there is no image assigned to the UIImageView.
Do you have an idea of how achieving that?


回答1:


Use below method to convert your UIImageView to UIImage.

UIImage *image = [self ChangeImageViewToImage:img];

//Method

-(UIImage *) ChangeImageViewToImage : (UIImageView *) view{

 UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
 [view.layer renderInContext:UIGraphicsGetCurrentContext()];

 UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();

 return img;

}



回答2:


This should help you

/* Creates an image with a home-grown graphics context, burns the supplied string into it. */
- (UIImage *)burnTextIntoImage:(NSString *)text :(UIImage *)img {

UIGraphicsBeginImageContext(img.size);

CGRect aRectangle = CGRectMake(0,0, img.size.width, img.size.height);
[img drawInRect:aRectangle];

[[UIColor redColor] set];           // set text color
NSInteger fontSize = 14;
if ( [text length] > 200 ) {
    fontSize = 10;
}
UIFont *font = [UIFont boldSystemFontOfSize: fontSize];     // set text font

[ text drawInRect : aRectangle                      // render the text
         withFont : font
    lineBreakMode : UILineBreakModeTailTruncation  // clip overflow from end of last line
        alignment : UITextAlignmentCenter ];

UIImage *theImage=UIGraphicsGetImageFromCurrentImageContext();   // extract the image
UIGraphicsEndImageContext();     // clean  up the context.
return theImage;
}


来源:https://stackoverflow.com/questions/20719518/create-uiimage-from-a-uiimageview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!