2014-02-07 4 views
3

UIImageView를 사용하고 있으며 둘 이상의 이미지를 배경으로 설정해야합니다.iOS에서 두 개 이상의 이미지를 결합하여 단일 이미지 만들기

모든 이미지는 투명 배경을 가지고 있으며 모서리에 하나의 기호를 포함합니다. 이미지는 조건에 따라 저장됩니다. 또한 하나 이상의 이미지가있을 수도 있습니다.

현재 이미지를 설정하고 있지만 마지막 이미지 만 볼 수 있습니다. 그래서 모든 이미지가 함께 표시되어야합니다.

여러 가지 이미지를 하나의 이미지로 변환 할 수있는 다른 방법이 있으면 알려 주시기 바랍니다.

어떤 도움을 사전

+0

여러 개의 이미지로 1 개의 이미지를 만들고 싶습니까? –

답변

2

에서

덕분에 당신은 혼합 모드로 이미지를 그릴 수를 이해할 수있을 것이다. 예를 들어, UIImage 인 경우 drawAtPoint:blendMode:alpha:으로 전화 할 수 있습니다. 대부분의 경우 블렌드 모드로 kCGBlendModeNormal을 사용하고 싶을 것입니다.

typedef enum _imageType{ 
    image1, 
    image2, 
    ... 
    imageN 
}imageType; 

및 .H 파일에 @interface

imageType imgType; 

에 선언

+0

감사합니다. 효과가있다. –

0

당신은 사용할 수 있습니다.

그리고 the.m 파일

-(void)setImageType:(imageType)type{ 
    imgType = type; 
} 

에서

다음 기능 setImageType를 사용할 수 있습니다을 당신이 원하는 모든 이미지를 설정할 수 있습니다.

1

알파 채널이 있기 때문에 이미지를 하나로 합성해야합니다.

이 작업을 수행하려면

  • 사용 UIGraphicsBeginImageContextWithOptions
  • 가 이미지를 렌더링 (해당 불투명도를 화면에 그릴 때보다는, 지금은 규모와 선택) 대상 크기로 이미지를 만들 수 있습니다 컨텍스트를 사용하여 CGContextDrawImage
  • 을 호출 한 다음 이미지 뷰의 이미지로 설정 한 UIImage으로 결과를 얻으려면 UIGraphicsGetImageFromCurrentImageContext을 호출하십시오.
1

이미지 배열을 가져 와서 단일 이미지를 반환하는 함수를 만들었습니다. 내 코드는 다음과 같습니다.

-(UIImage *)blendImages:(NSMutableArray *)array{ 

    UIImage *img=[array objectAtIndex:0]; 
    CGSize size = img.size; 
    UIGraphicsBeginImageContext(size); 

    for (int i=0; i<array.count; i++) { 
     UIImage* uiimage = [array objectAtIndex:i]; 
     [uiimage drawAtPoint:CGPointZero blendMode:kCGBlendModeNormal alpha:1.0]; 
    } 
    return UIGraphicsGetImageFromCurrentImageContext(); 
} 

희망 사항은 다른 사람들에게도 도움이되기를 바랍니다.

관련 문제