Ios 用核心图形绘制UIImage?

Ios 用核心图形绘制UIImage?,ios,cocoa-touch,uikit,cocos2d-iphone,core-graphics,Ios,Cocoa Touch,Uikit,Cocos2d Iphone,Core Graphics,我想在屏幕上绘制一幅使用CGContextRef或UIGraphicsBeginImageContext从PhotoLibrary检索到的图像 我尝试了下面的代码,但它没有在屏幕上画任何东西。我目前正在使用cocos2d和box2d。怎么了 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ newImage = [i

我想在屏幕上绘制一幅使用CGContextRef或UIGraphicsBeginImageContext从PhotoLibrary检索到的图像

我尝试了下面的代码,但它没有在屏幕上画任何东西。我目前正在使用cocos2d和box2d。怎么了

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info{

newImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

// Dismiss UIImagePickerController and release it
[picker dismissModalViewControllerAnimated:YES];
[picker.view removeFromSuperview];
[picker release];

// Let's create a sprite now that we have an image

//CCSprite *imageFromPicker = [CCSprite spriteWithCGImage:newImage.CGImage key:@"ImageFromPicker"];
//[self addChild:imageFromPicker];


UIGraphicsBeginImageContext(CGSizeMake(320,480));

CGContextRef context = UIGraphicsGetCurrentContext();

[newImage drawAtPoint:CGPointZero];

CGContextTranslateCTM(context, 70, 370 );
CGContextScaleCTM(context, 1.0, -1.0);
//CGContextDrawImage(context, CGRectMake(0, 0, 40, 40), newImage.CGImage);
//CGImageRelease(newImage);
UIGraphicsEndImageContext();

}

你不会让Cocoa touch或其他人突然开始画画。它会询问你的应用程序应该如何绘制某些视图,你可以在视图子类的drawRect方法中告诉它。此时已创建图形上下文

您的代码正在创建图形上下文并为其绘制图形,但此图形不是在屏幕上完成的

要在特定位置绘制特定图像,通常需要将图像对象指定给某些视图,如上面代码中的精灵?我不熟悉cocos2d,它已经知道如何绘制图像。然后,您会将该视图放在屏幕上,您已注释掉addChild call?。您可以向视图对象添加必要的变换,这将被考虑在内


简单看一下cocos2d文档,CCSprite继承自CCNode,它可以应用一个变换-您可以设置旋转和缩放参数。我建议你调查一下

你不会让Cocoa touch或其他人突然开始画画。它会询问你的应用程序应该如何绘制某些视图,你可以在视图子类的drawRect方法中告诉它。此时已创建图形上下文

您的代码正在创建图形上下文并为其绘制图形,但此图形不是在屏幕上完成的

要在特定位置绘制特定图像,通常需要将图像对象指定给某些视图,如上面代码中的精灵?我不熟悉cocos2d,它已经知道如何绘制图像。然后,您会将该视图放在屏幕上,您已注释掉addChild call?。您可以向视图对象添加必要的变换,这将被考虑在内


简单看一下cocos2d文档,CCSprite继承自CCNode,它可以应用一个变换-您可以设置旋转和缩放参数。我建议你调查一下

因为提问者可能会想:UIGraphicsBeginImageContext是用来创建图像,而不是绘制到屏幕上的。你已经有了一个图像,所以只需把它交给一个视图,一个在视图层次结构中知道如何绘制它的视图。我完全同意。但它不是一个基于视图的类,而是一个基于cclayer的类。所以我想drawrect方法不是一个选项。。我需要执行像缩放图像这样的操作,所以我想在一些graphiccontext对象中获取图像,以便我可以在draw方法中对其进行操作??您可以将变换应用于CCSprite。我已经编辑了我的答案。因为发问者可能会想:UIGraphicsBeginImageContext是用来创建图像的,而不是画到屏幕上的。你已经有了一个图像,所以只需把它交给一个视图,一个在视图层次结构中知道如何绘制它的视图。我完全同意。但它不是一个基于视图的类,而是一个基于cclayer的类。所以我想drawrect方法不是一个选项。。我需要执行像缩放图像这样的操作,所以我想在一些graphiccontext对象中获取图像,以便我可以在draw方法中对其进行操作??您可以将变换应用于CCSprite。我已经编辑了我的答案。