2010-10-05 23 views
0

我想合并两个图像,其中一个是贺卡,心形部分透明,另一个是夫妇的图像。现在我想要可移动的情侣的图像,以便我可以移动它们并调整它们以设置在心脏部分,然后我想将该图像的混合物保存为一个图像并将其作为附件发送到邮件中... 您能否请您向我提供任何此类示例或解决方案的链接。合并2图像,其中一个是可移动的

任何帮助将非常感激。

在此先感谢...

回答

1

这是我如何做掩蔽,这对我工作。

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage1 
{ 

    float width,height; 
     width=288.0; 
     height=274.0; 

    CGContextRef mainViewContentContext; CGColorSpaceRef colorSpace; 
    UIImage *orgImage=image; 

    CGImageRef img = [orgImage CGImage]; 

    colorSpace = CGColorSpaceCreateDeviceRGB(); 

    mainViewContentContext = CGBitmapContextCreate (NULL, width, height, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast); 
    CGColorSpaceRelease(colorSpace); 

    if (mainViewContentContext==NULL) 
     return NULL; 

    CGRect subImageRect; 
    CGImageRef tileImage; 
    float xCord=0; 
    float yCord=0; 
    subImageRect = CGRectMake(xCord,yCord,width,height); 
    tileImage = CGImageCreateWithImageInRect(img,subImageRect); 
    //UIImageWriteToSavedPhotosAlbum([UIImage imageWithCGImage:tileImage],nil,nil,nil); 
    CGImageRef maskImage = maskImage1.CGImage; 
    CGContextClipToMask(mainViewContentContext, CGRectMake(0, 0, width, height), maskImage); 
    CGContextDrawImage(mainViewContentContext, CGRectMake(0, 0, width, height), tileImage); 
    //UIImageWriteToSavedPhotosAlbum([UIImage imageWithCGImage: maskImage],nil,nil,nil); 
    CGImageRef mainViewContentBitmapContext = CGBitmapContextCreateImage(mainViewContentContext); 
    CGContextRelease(mainViewContentContext); 
    UIImage *theImage = [UIImage imageWithCGImage:mainViewContentBitmapContext]; 
    //UIImageWriteToSavedPhotosAlbum(theImage,nil,nil,nil); 
    CGImageRelease(mainViewContentBitmapContext); 
    return theImage; 
} 

这该是多么我提出IMAGE

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

    if([timer isValid]) 
     [timer invalidate]; 

    NSSet *allTouches = [event allTouches]; 

    switch ([allTouches count]) 
    { 
     case 1: { 
      //The image is being panned (moved left or right) 
      UITouch *touch = [[allTouches allObjects] objectAtIndex:0]; 
      CGPoint centerPoint = [touch locationInView:[self view]]; 

      [imgView setCenter:centerPoint]; 

      NSLog(@"Center.x=%f Center.y=%f",centerPoint.x,centerPoint.y); 


     } break; 
     case 2: { 
      //The image is being zoomed in or out. 

      UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0]; 
      UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1]; 

      //Calculate the distance between the two fingers. 
      CGFloat finalDistance = [self distanceBetweenTwoPoints:[touch1 locationInView:[self view]] toPoint:[touch2 locationInView:[self view]]]; 
      NSLog(@"Initial=%f Final=%f",initialDistance,finalDistance); 
      //Check if zoom in or zoom out. 
      //Check if zoom in or zoom out. 




      int width; 
      int height; 

      if(initialDistance < finalDistance) { 
       NSLog(@"Zoom Out"); 

       zx=imgView.frame.origin.x-2.5; 
       zy=imgView.frame.origin.y-2.5; 
       width=imgView.frame.size.width+5; 
       height=imgView.frame.size.height+5; 

      } 
      else 
      { 
       NSLog(@"Zoom In"); 



       zx=imgView.frame.origin.x+2.5; 
       zy=imgView.frame.origin.y+2.5; 
           width=imgView.frame.size.width-5; 
           height=imgView.frame.size.height-5; 

      } 

      imgView.frame = CGRectMake(zx,zy,width,height); 
      initialDistance = finalDistance; 

     } break; 
    } 

} 

编码快乐...

相关问题