/ / UIImage срещу NSImage: Изчертаване на изображение на екрана в iOS

UIImage vs NSImage: Изчертаване на изображение извън екрана в iOS - цел-c, какао-докосване, uiimage, nsimage

В Mac OSX (какао), Много е лесно да се направи празно изображение на определен размер и да го привлече на екрана:

NSImage* image = [[NSImage alloc] initWithSize:NSMakeSize(64,64)];
[image lockFocus];
/* drawing code here */
[image unlockFocus];

Въпреки това, в iOS (какао докосване) там не изглеждада бъдат еквивалентни призиви за UIImage. Искам да използвам UIImage (или друг еквивалентен клас), за да направя същото. Това означава, че искам да направя изрично размер, първоначално празен образ, на който мога да нарисувам като се нарича UIRectFill(...) и [UIBezierPath stroke].

Как да направя това?

Отговори:

8 за отговор № 1

CoreGraphics е необходима тук, тъй като UIImage няма функции на високо ниво като това, което сте обяснили ..

UIGraphicsBeginImageContext(CGSizeMake(64,64));

CGContextRef context = UIGraphicsGetCurrentContext();
// drawing code here (using context)

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

3 за отговор № 2

Можете да направите това, както следва:

UIGraphicsBeginImageContext(CGSizeMake(64, 64));
//Drawing code here
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Тук е Apple Графики и рисунки справка.


0 за отговор № 3

Нещо като това:

UIGraphicsBeginImageContextWithOptions(mySize, NO, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
UIGraphicsPushContext(context);

[myImage drawInRect:myImageRect];
[myText drawAtPoint:myOrigin withFont:myFont];

UIGraphicsPopContext();
UIImage *myNewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();