2009-12-03 3 views
0

CGPath를 사용하여 UIView에서 패스 드로를 가져 와서 PNG로 내보낼 수 있습니까?CGPath를 JPG 또는 PNG로 내보내기

+0

예. 아, 당신이 코드를 원했던 것 같아요. .. – U62

+0

아니, 솔직히 말하면, 나는 포인터가 더 잘 알고 싶습니다. 나는 물고기를 원하지 않는다. 나는 물고기를 먹는 법을 배우기를 원한다. – ariel

+0

아무튼, 고마워요. 그렇습니다. 정말 큰 것입니다. 어떻게 또한 중요하지만, 그것이 가능하다는 것을 아는 것만으로도 좋습니다. – ariel

답변

3

은있는 UIImage 아닌 PNG 파일, 당신은 이런 식으로 뭔가를 할 수 원하는 :

UIGraphicsBeginImageContext(size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0); 
CGContextSetLineWidth(context, 2.0); 
CGContextSetLineCap(context, kCGLineCapSquare); 

//DRAW YOUR PATH HERE 

CGContextStrokePath(context); 

myUIImage = UIGraphicsGetImageFromCurrentImageContext(); 
[myUIImage retain]; 

UIGraphicsEndImageContext(); 
+0

그러나 이미지가 흐리게 나타날 수 있습니다. UIGraphicsBeginImageContextWithOptions는 이것을 피하기 위해 마지막 인수와 함께 0.0으로 사용할 수 있습니다. – jarryd

1

가장 깨끗한 방법은 UIGraphicsBeginImageContext()에 의해 생성 된 이미지 컨텍스트에서 전체 그림을 다시 수행하고 UIImage을 가져온 다음 UIImagePNG/JPEGRepresentation() 함수를 통해 저장하는 것입니다.

UIView는 이미지를 "보유"하지 않습니다. UIView의 레이어를 다시 렌더링 할 수 있지만 모델 데이터를 저장하기 위해 뷰를 사용하고있어 MVC가 심각하게 위태롭게되어 있으며보기에는 좋지 않습니다. 당신을 가정

관련 문제