一個(gè)UIImage
對象提供了向當(dāng)前上下文繪制自身的方法鹦肿。我們現(xiàn)在已經(jīng)知道如何獲取一個(gè)圖片類型的上下文并將它轉(zhuǎn)變成當(dāng)前上下文。
平移操作:
下面的代碼展示了如何將UIImage繪制在當(dāng)前的上下文中。
UIImage* mars = [UIImage imageNamed:@"Mars.png"];
CGSize sz = [mars size];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2, sz.height), NO, 0);
[mars drawAtPoint:CGPointMake(0,0)];
[mars drawAtPoint:CGPointMake(sz.width,0)];
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView* iv = [[UIImageView alloc] initWithImage:im];
[self.window.rootViewController.view addSubview: iv];
iv.center = self.window.center;
縮放操作:
下面代碼展示了如何對UIImage進(jìn)行縮放操作:
UIImage* mars = [UIImage imageNamed:@"Mars.png"];
CGSize sz = [mars size];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2, sz.height*2), NO, 0);
[mars drawInRect:CGRectMake(0,0,sz.width*2,sz.height*2)];
[mars drawInRect:CGRectMake(sz.width/2.0, sz.height/2.0, sz.width, sz.height) blendMode:kCGBlendModeMultiply alpha:1.0];
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
裁剪操作:
UIImage沒有提供截取圖片指定區(qū)域的功能丈秩。但通過創(chuàng)建一個(gè)較小的圖形上下文并移動(dòng)圖片到一個(gè)適當(dāng)?shù)膱D形上下文坐標(biāo)系內(nèi),指定區(qū)域內(nèi)的圖片就會(huì)被獲取。下面代碼展示了如何獲取圖片的右半邊:
UIImage* mars = [UIImage imageNamed:@"Mars.png"];
CGSize sz = [mars size];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width/2.0, sz.height), NO, 0);
[mars drawAtPoint:CGPointMake(-sz.width/2.0, 0)];
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
以上的代碼首先創(chuàng)建一個(gè)一半圖片寬度的圖形上下文辰企,然后將圖片左上角原點(diǎn)移動(dòng)到與圖形上下文負(fù)X坐標(biāo)對齊,從而讓圖片只有右半部分與圖形上下文相交况鸣。
參考資料:
土夢博客