변환 된 UIImageViews에서 고해상도 이미지를 생성하는 데 어려움을 겪고 있습니다. 사용자 손가락으로 변형 된 여러보기가 포함 된 캔버스보기가 있습니다. 그래서 저는 그것들의 변형을 기반으로 한 뷰의 이미지를 렌더링하려고합니다. 다음은 뷰에 사용하는 코드 스냅입니다.변형 된 UIImageViews에서 고해상도 이미지 생성
CGSize canvasSize = CGSizeMake(HIRES_WIDTH, HIRES_WIDTH);
CGAffineTransform scaleTransform = CGAffineTransformMakeScale(HIRES_WIDTH/canvasView.frame.size.width, HIRES_WIDTH/canvasView.frame.size.width);
UIGraphicsBeginImageContext(canvasSize);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGPoint center = imageView.center;
CGSize size = imageView.bounds.size;
CGRect frame = CGRectMake(center.x - size.width, center.y - size.height, size.width, size.height);
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformTranslate(transform, size.width/2, size.height/2);
transform = CGAffineTransformConcat(transform, photoImageView.transform);
transform = CGAffineTransformConcat(transform, scaleTransform);
CGContextConcatCTM(context, transform);
[photoImageView.image drawInRect:frame];
CGContextRestoreGState(context);
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
하지만 최종 이미지에서 오프셋 차이가 나타납니다. 조언을 주시면 감사하겠습니다.
감사합니다. 이 설정을 변경하는
HIRES_WIDTH? HIRES_WIDTH? – m177312