-(void) doLoadImageData { float width = 400; float height = 400; NSImage *finalImage = [[NSImage alloc] initWithSize:NSMakeSize(width,height)]; // obtain images - your sources may vary NSImage *mainImage = [[NSImage alloc] initWithContentsOfFile:@".../sourceImage.jpg"]; NSImage *overImage = [[NSImage alloc] initWithContentsOfFile: @".../overImage.jpg"]; [finalImage lockFocus]; CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort]; // draw the base image [mainImage drawInRect:NSMakeRect(0,width,height) fromrect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:YES hints:nil]; // draw the overlay image at some offset point [overImage drawInRect:NSMakeRect(0,100,50,50)fromrect:NSZeroRect operation:NSCompositeSourceOver fraction:0.5 respectFlipped:YES hints:nil]; [self MyDrawText:myContext]; [finalImage unlockFocus]; NSData *finalData = [finalImage TIFFRepresentation]; NSBitmapImageRep *imageRep =[NSBitmapImageRep imageRepWithData:finalData]; NSData *data =[imageRep representationUsingType:NSJPEGFileType properties:nil]; [data writetoFile:@"/Users/mac-d1/work/waterMark.jpg" atomically:YES]; } -(void) MyDrawText:(CGContextRef) myContext // 1 { CGContextSelectFont (myContext,"Helvetica-Bold",10,kCGEncodingMacRoman); // CGContextSetCharacterSpacing (myContext,0.5); // 4 CGContextSetTextDrawingMode (myContext,kCGTextFill); // 5 CGContextSetRGBFillColor (myContext,1,0.5); // 6 //CGContextSetRGBstrokeColor (myContext,0.2); // 7 CGContextshowtextAtPoint (myContext,20,"www.Amacsoft.com",16); // 10 }