2013-03-27 130 views
0

我可以在UIViewdrawScreeniPhone手繪圖像並保存高質量編輯圖像

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

我已經加入我的UIImageView作爲上述UIView例如子視圖drawScreen,以便它看起來正在繪製圖像。

現在我想保存繪畫的形象,我也做使用這部分

UIGraphicsBeginImageContext(CGSizeMake(drawScreen.frame.size.width, drawScreen.frame.size.height)); 

問題:
的問題是,所得到的保存圖像尺寸drawScreen和我原來的形象是好的質量。 e.g的drawScreen

尺寸爲300×300

我的原始圖像的大小爲640x640

導致圖像的大小也是300×300。

如何保存原始大小的圖像與編輯?

回答

0

我可以使用UIScrollView進行編輯,保存原始大小的圖像。 我在UIScrollView中禁用單指滾動,只允許用兩根手指滾動並使用單根手指繪製圖像。 我已使用以下代碼保存原始尺寸圖像

UIGraphicsBeginImageContext(self.scrollView.contentSize); 
{ 
    CGPoint savedContentOffset = self.scrollView.contentOffset; 
    CGRect savedFrame = self.scrollView.frame; 

    self.scrollView.contentOffset = CGPointZero; 
    self.scrollView.frame = CGRectMake(0, 0, self.scrollView.contentSize.width, self.scrollView.contentSize.height); 

    [self.scrollView.layer renderInContext: UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 
    self.scrollView.contentOffset = savedContentOffset; 
    self.scrollView.frame = savedFrame; 
} 
UIGraphicsEndImageContext(); 
1

首先簡單地將drawScreen.frame.size.widthdrawScreen.frame.size.height替換爲原始圖像的大小。首先,您將需要創建一個新的UIView實例,該實例是圖像的大小(並將圖像添加到其中)。然後你需要調整和重繪你的藝術。根據您存儲圖像的方式,您需要將座標乘以計算得出的因子,或者渲染一些東西然後放大。無論採用哪種方式,您都會在新的UIView之上添加放大的圖形作爲子視圖。然後使用UIGraphicsGetCurrentImageContext

您需要閱讀this documentation

此外,您可能會發現this question有所幫助。

+0

不,它不起作用。 正如我告訴你,我正在標記圖像部分,就像用自由手圈或線條指出圖像中的某些東西。不同尺寸的繪圖畫面和圖像大小會導致繪圖位置問題。 – 2013-03-27 06:53:24

+0

我真正想要的是 向用戶顯示640x640圖像(不滾動)。 用戶在此圖上畫圖 ,然後用繪圖保存640x640圖像。 – 2013-03-27 06:58:00

+0

我在這方面花了很多時間,沒有找到任何教程,例子等 – 2013-03-27 06:59:44