2012-08-16 70 views
-2

我想将图像上传到服务器。我可以做到这一点,它与UIImage。但是,我想上传当前显示在我的应用程序中的图像,该图像位于UIImageView内。UIImageView到UIImage?

我该如何通过或暂时将UIImageView图片存储在UIImage内?我尝试了以下方法,但它不起作用。

UIImage *myImage = imageView.image; 
+2

我看不出有什么理由不应该这么做。当你尝试时有什么问题? – 2012-08-16 17:00:18

+0

是你的图像也许是一个动画图像?通常它有可能从'UIImageView'的图像属性中获得'UIImage',结果是图像nil? – Pfitz 2012-08-16 17:00:24

+0

不是图像没有动画。用户可以从照片库中选择照片,然后将其显示在uiimageview中。我想把这张照片放在一个图片里 – 2012-08-16 17:02:22

回答

1

你应该努力什么,你得到了什么样的错误?您也可以试试这个...

UIImage *image = [[UIImage alloc] initWithData:UIImagePNGRepresentation(imageView.image)]; 

,甚至更好...

UIImage *image = [UIImage imageWithData:UIImagePNGRepresentation(imageView.image)]; 

但为什么你甚至需要分配一个UIImage,当你已经有一个在的UIImageView?直接使用imageView.image ...

+0

适合我的工作...干得好 – 2016-08-26 07:45:39

2

我不知道为什么还没有直接访问图像属性不为你工作,但是或者您可以呈现图像视图成位图上下文,然后创建一个从上下文新形象。该代码将类似于:

#import <QuartzCore/QuartzCore.h> // necessary for referencing CALayers 
... 
CGSize imageSize = imageView.bounds.size; 
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[imageView.image.layer renderInContext:context]; 
UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Technical Q&A QA1703 - Screen Capture in UIKit Applications

+0

良好的解决方法 – Dustin 2012-08-16 19:29:57