Как сохранить вид как изображение

Я создаю приложение для iOS, используя Rubymotion. В этом приложении я позволяю пользователю «подписать» свое имя, рисуя изображение. Я хочу сохранить эту «подпись» на реальном изображении, чтобы загрузить ее на сервер.

Я думаю, что нашел здесь решение Objective-C: iPhone: Как сохранить вид как изображение??? (например, сохранить то, что вы рисуете )

Код для этого выглядит так:

UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Я попытался «перевести» этот код на Ruby следующим образом:

UIGraphicsBeginImageContext(signature.bounds.size)
signature.layer.renderInContext(UIGraphicsGetCurrentContext)
image = UIImage.UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

Но я получаю эту ошибку при запуске:

uninitialized constant SignatureController::UIGraphicsGetCurrentContext (NameError)
2013-01-27 14:20:29.943 buy_app[18384:13d03] *** Terminating app due to uncaught exception 'NameError', reason: 'signature_controller.rb:88:in `save': uninitialized constant SignatureController::UIGraphicsGetCurrentContext (NameError)

Что я делаю неправильно? Как лучше всего сохранить обычный вид в изображение?

Спасибо!

ОБНОВЛЕНИЕ

Я решил это так:

UIGraphicsBeginImageContext(signature.bounds.size)
signature.layer.renderInContext(UIGraphicsGetCurrentContext())
image = UIImage.UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
image = UIImagePNGRepresentation(image)

person Jonathan Clark    schedule 27.01.2013    source источник


Ответы (1)


Я решил это так

UIGraphicsBeginImageContext(signature.bounds.size)
signature.layer.renderInContext(UIGraphicsGetCurrentContext())
image = UIImage.UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
image = UIImagePNGRepresentation(image)
person Jonathan Clark    schedule 29.01.2013
comment
Для дисплея сетчатки вы бы хотели использовать UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen.scale) В противном случае изображение будет уменьшено до разрешения 1/4. - person aceofspades; 24.03.2013