카테고리 없음

[아이폰] 두 UIImageView에서 하나의 UIImage 만들기

행복을전해요 2021. 1. 11. 01:34

세 개의 UIImageView가있는 뷰가 있고 해당하는 콘센트를 만드는 경우

IBOutlet UIImageView *imageView1;
IBOutlet UIImageView *imageView2;
IBOutlet UIImageView *imageView3;

다음과 같이 imageViews 1과 2를 imageView 3에 결합 할 수 있습니다.

UIGraphicsBeginImageContext(imageView1.image.size);  

CGRect rect = CGRectMake(0, 0, imageView1.image.size.width, imageView1.image.size.height);

[imageView1.image drawInRect:rect];  
[imageView2.image drawInRect:rect blendMode:kCGBlendModeScreen alpha:0.5];  

UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();  
UIGraphicsEndImageContext();  

[imageView3 setImage:resultingImage];

CGBlendMode를 사용하면 이미지에 대해 다음 합성 작업 중 하나를 선택할 수 있습니다.

enum CGBlendMode {
   kCGBlendModeNormal,
      kCGBlendModeMultiply,
         kCGBlendModeScreen,
            kCGBlendModeOverlay,
               kCGBlendModeDarken,
                  kCGBlendModeLighten,
                     kCGBlendModeColorDodge,
                        kCGBlendModeColorBurn,
                           kCGBlendModeSoftLight,
                              kCGBlendModeHardLight,
                                 kCGBlendModeDifference,
                                    kCGBlendModeExclusion,
                                       kCGBlendModeHue,
                                          kCGBlendModeSaturation,
                                             kCGBlendModeColor,
                                                kCGBlendModeLuminosity,
                                                   kCGBlendModeClear,
                                                      kCGBlendModeCopy,
                                                         kCGBlendModeSourceIn,
                                                            kCGBlendModeSourceOut,
                                                               kCGBlendModeSourceAtop,
                                                                  kCGBlendModeDestinationOver,
                                                                     kCGBlendModeDestinationIn,
                                                                        kCGBlendModeDestinationOut,
                                                                           kCGBlendModeDestinationAtop,
                                                                              kCGBlendModeXOR,
                                                                                 kCGBlendModePlusDarker,
                                                                                    kCGBlendModePlusLighter
                                                                                    };
                                                                                    


출처
https://stackoverflow.com/questions/2006068