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];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值