ios - 使用 Core Graphics 绘制 UIImage?

标签 ios cocoa-touch uikit cocos2d-iphone core-graphics

我要在屏幕上绘图 使用 从 PhotoLibrary 检索到的图像CGContextRef UIGraphicsBeginImageContext .

我尝试了以下代码,但它没有在屏幕上绘制任何内容。我目前正在使用 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(触摸或其他方式)突然开始绘图。它询问您的应用程序应该如何绘制某些 View ,然后您在 drawRect 中告诉它。您的 View 子类的方法。此时已经创建了图形上下文。

您的代码正在创建图形上下文并对其进行绘图,但此绘图未在屏幕上完成。

要在特定位置绘制特定图像,您通常会将图像对象分配给已经知道如何绘制图像的某个 View (例如上面代码中的 Sprite ?我不熟悉 cocos2d)。然后您将该 View 放在屏幕上(您已注释掉 addChild 调用?)。您可以将必要的转换添加到 View 对象,这将被考虑在内。

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

关于ios - 使用 Core Graphics 绘制 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8789013/

相关文章:

ios - 解析 : PFUser signUpInBackgroundWithBlock causing exception when trying to convert anonymous user to regular

ios - 静态库 iOS 中的弱链接

ios - Flutter ListView 双重弹跳问题

ios - 如何使 Cocoa Touch 框架在应用程序中保持最新

iphone - 同时使用触摸和触摸手势识别器

ios - UITableView 重新加载自定义 UITableViewHeaderFooterView 的数据

ios - iOS中的超链接识别

ios - UIView 底边模式

iphone - NSCache 自动删除策略

ios - 在 Cocoa Touch/UIKit 上,如何从后台线程检测用户界面的变化?