간단한 iPad 이미지 콜라주 앱에 문제가 있습니다. 나는 다른 UIImageViews를 drag'n'drop 할 수있는 UIImageView를 가지고있다. 드래그 한 뷰를 회전하고 늘일 수 있습니다. 사용자가 이미지 편집을 마쳤 으면 모든 이미지를 최종 이미지에 병합합니다. 내 솔루션 맥락에서 UIGraphics를 사용하는 모든 서브 뷰를 통해 큰 이미지, 다음 루프를 그리고 그들을 그릴 수 있었다 :이미지를 병합하고 원본 변형을 유지하는 방법
- (UIImage*)mergeImages
{
CGSize imageSize = imageView.frame.size;
UIGraphicsBeginImageContext(imageSize);
[imageView.image drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
[[imageView subviews] enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) {
UIImage *imageOriginal = ((UIImageView*)object).image;
CGRect rect = ((UIImageView*)object).frame;
UIImage *imageToAdd = [self scaleImage:imageOriginal :rect.size];
// Find the w/h ratioes
float widthRatio = rect.size.width/imageOriginal.size.width;
float heightRatio = rect.size.height/imageOriginal.size.height;
// Calculate point to draw at
CGPoint pointToDrawAt;
if (widthRatio > heightRatio)
pointToDrawAt = CGPointMake(rect.origin.x + (rect.size.width/2) - (imageToAdd.size.width/2), rect.origin.y);
else
pointToDrawAt = CGPointMake(rect.origin.x, rect.origin.y + (rect.size.width/2) - (imageToAdd.size.height/2));
[imageToAdd drawAtPoint:pointToDrawAt];
}];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Save image in photogalery
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);
return newImage;
}
은 위의 이미지가 회전되지 않는 긴로 벌금을 작동합니다. 그래서 내 질문은 :
내가 회전 각도를 찾을 수있는 방법은 하위 뷰에서 또는 UIView 하위 클래스 및 속성을 만들 필요가 있습니까? 아니면 이미지를 병합하고 각도 및 필터와 같은 드로잉 특정 속성을 얻을 수있는 또 다른 방법이 있습니까?
내가 더 많은 코드 또는 아무것도 코멘트를 도울 수 있다면. 그리고 미리 감사드립니다 :)