COCOA:把一个图到转,画到一个背景大的图前面

 

NSImage *image = [[NSImage alloc] initByReferencingFile:SourcePath]; // 生成一个NSImage对象,从文件
 [image setBackgroundColor:[NSColor blueColor]];//设置背景颜色
 NSSize psize = NSMakeSize(300, 200);                //目的图片大小
 [image setScalesWhenResized:YES];                      //设置可以缩放
 [image setSize:psize];                                             //设置Image大小
 [image setFlipped:YES];                                        //设置倒转
 [image lockFocus]; ///锁住对象焦点

 

 //生成一个背景图,然后把原图放大,混合在一起
 NSSize iisize= NSMakeSize(300, 300);
 NSImage *newImage = [[NSImage alloc] initWithSize:iisize];
 [newImage lockFocus];

 

//使用CTGradient类
 CTGradient *fade = [CTGradient gradientWithBeginningColor:[NSColor colorWithCalibratedWhite:1.0 alpha:1] endingColor:[NSColor clearColor]];

 

//使用CTGradient类,使用填充这个Image
 [fade fillRect:NSMakeRect(0,0, [image size].width, [image size].height*fraction) angle:90.0];

 

//把源图片填充到目的图固定的位置,NSZeroRect 从源图的(0,0)开始,以NSMakePoint(0,50)开始填,fraction填充源图的比例
 [image drawAtPoint:NSMakePoint(0,50) fromRect:NSZeroRect operation:NSCompositeSourceIn fraction:1.0];
 [newImage unlockFocus];
 
 //保存源图jpeg格式图片
 NSData *tempdata;
 NSBitmapImageRep *srcImageRep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
 NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:0.8] forKey:NSImageCompressionFactor]; //指定保存JPEG格式
 tempdata = [srcImageRep representationUsingType:NSJPEGFileType properties:imageProps];
 [tempdata writeToFile:@"/Users/zhuzhichao/Desktop/temp.jpeg" atomically:YES];

 

//保存目的图,可以指定保存某种格式的图

 [[newImage TIFFRepresentation] writeToFile:@"/Users/zhuzhichao/Desktop/temp111.jpeg" atomically:YES];
 
 [image unlockFocus];

//把源图显示在ImageView上
 [zcgargetImageView setImage:image];
 [image release];

你可能感兴趣的:(properties,cocoa,image)