亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

iOS-合并兩個不同大小的圖像

iOS-合并兩個不同大小的圖像

墨色風雨 2019-12-20 11:10:26
我面臨以下問題:由于合并,我必須合并兩個圖像A和B以創建新圖像C。我已經知道如何合并兩個圖像,但是在這種情況下,我的目標有所不同。我希望圖像A將作為圖像B的背景。例如,如果圖像A的尺寸為500x500,圖像B的尺寸為460x460,我希望圖像C(合并的圖像結果)為500x500,圖像B( 460x460)居中。在此先感謝您的幫助或建議
查看完整描述

3 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

這是我在應用程序中所做的,但是沒有使用UIImageView:


UIImage *bottomImage = [UIImage imageNamed:@"bottom.png"]; //background image

UIImage *image       = [UIImage imageNamed:@"top.png"]; //foreground image


CGSize newSize = CGSizeMake(width, height);

UIGraphicsBeginImageContext( newSize );


// Use existing opacity as is

[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];


// Apply supplied opacity if applicable

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8];


UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();


UIGraphicsEndImageContext();

如果圖像已經具有不透明度,則無需進行設置(如在bottomImage中),否則可以進行設置(與圖像一樣)。


在這之后UIImage創建,那么你可以將它嵌入到你的UIImageView


更新:感謝Ahmet AkkoK-對于Swift(2.2)用戶,混合模式宏已更改。CGBlendMode .kCGBlendModeNormal被替換為CGBlendMode.Normal


查看完整回答
反對 回復 2019-12-20
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

嘿,我得到了多張圖像,并添加了具有不同前景的相同背景。


UIImage *bottomImage = [UIImage imageNamed:@"photo 2.JPG"]; //background image

UIImage *image       = [UIImage imageNamed:@"photo 3.JPG"]; //foreground image

UIImage *image1      = [UIImage imageNamed:@"photo 4.JPG"]; //foreground image

UIImage *image2      = [UIImage imageNamed:@"photo 5.JPG"]; //foreground image


CGSize newSize = CGSizeMake(320, 480);

UIGraphicsBeginImageContext( newSize );


// Use existing opacity as is

[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];


// Apply supplied opacity if applicable

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.4];

[image1 drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.3];

[image2 drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.2];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();


UIGraphicsEndImageContext();


resultView = [[UIImageView alloc] initWithImage:newImage];

resultView.frame = CGRectMake(0, 0,320,460);

[self.view addSubview:resultView];


查看完整回答
反對 回復 2019-12-20
?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

剛剛為想要使用Srikar Appal答案的用戶提供了快速粘貼功能。(如果背景圖片和前景圖片的大小不同)


- (UIImage *) mergeImages:(NSString *)bgImageFileName foreGround:(NSString *)fgImageFileName  {

    UIImage *bottomImage = [UIImage imageNamed:bgImageFileName]; //background image

    UIImage *image       = [UIImage imageNamed:fgImageFileName]; //foreground image


    CGSize newSize = CGSizeMake(bottomImage.size.width, bottomImage.size.height);

    UIGraphicsBeginImageContext(newSize);


    // Use existing opacity as is

    [bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];


    // Apply supplied opacity if applicable

    // Change xPos, yPos if applicable

    [image drawInRect:CGRectMake(11,11,image.size.width,image.size.height) blendMode:kCGBlendModeNormal alpha:1.0];


    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();


    UIGraphicsEndImageContext();

    return newImage;

}


查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關注
  • 707 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號