создать один UIImage из двух UIImageView - PullRequest
7 голосов
/ 05 января 2010

У меня есть два UIImageView на UIView. Каждый UIImageView имеет один UIImage. Теперь я хочу создать один UIImage из двух UIImageView.

Пожалуйста, дайте предложение, как я могу это сделать.

1 Ответ

11 голосов
/ 05 января 2010

Если у вас есть представление с тремя UIImageViews и создать соответствующие выходы

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
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...