(iphone/ipad)關於圖片合成的範例

安迪潘發表於2011-11-02

剛看到一個關於圖片合成的帖子,感覺寫的很好,提供了一個思路,但沒時間嘗試,就先轉載過來,有時間了試試。


在臺灣的論壇裡看到了一個關於圖片合成的帖子,本想下下來研究,怎奈還要積分!所以仿照程式碼自己寫了一個發出來和大家共同研究。
1.建立一個基於View-base的的工程命名為CombineImages
2.看看Xcode自動生成的檔案,然後選擇class右鍵建立新的file檔案命名為CombineImages
3.開啟CombineImages.h修改程式碼如下:


@interface CombineImagesViewController : UIViewController {
        IBOutlet  UIImageView *ImageView1;
        IBOutlet  UIImageView *ImageView2;
        IBOutlet  UIImageView *newImageView;
}
@property (nonatomic, retain) UIImageView *ImageView1;
@property (nonatomic, retain) UIImageView *ImageView2;
@property (nonatomic, retain) UIImageView *newImageView;
- (IBAction) Combine2Images:(id)sender;
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2;

4.開啟CombineImages.m,修改並新增如下程式碼:


@synthesize ImageView1,ImageView2,newImageView;
- (IBAction)Combine2Images:(id)sender{
        newImageView.image = [self addImage:ImageView1.image toImage:ImageView2.image];
}
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2{
        UIGraphicsBeginImageContext(image1.size);
        [image1 drawInRect:CGRectMake(0, 0, image1.size.width, image1.size.height)];
        [image2 drawInRect:CGRectMake(0, 0, image2.size.width, image2.size.height)];
        UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return resultingImage;
}

- (void)viewDidLoad {
    [super viewDidLoad];
        ImageView1.image = [UIImage imageNamed:@"ImageView1.png"];
        ImageView2.image = [UIImage imageNamed:@"ImageView2.png"];
}
- (void)dealloc {
        [ImageView1 release];
        [ImageView2 release];
        [newImageView release];
    [super dealloc];
}

好了程式碼部分已經新增結束!

原文地址:http://www.devdiv.com/thread-45031-1-3.html

相關文章