Преобразование CGLayer в * прозрачный * UIImage и файл PNG в CoreGraphics iphone - PullRequest
1 голос
/ 09 июля 2009

Я делаю простое приложение для рисования для iphone. Я пытаюсь преобразовать нарисованное изображение в прозрачный PNG (я не хочу белый фон). Я также хотел бы получить представление UIImage для использования в UIImageView.

В настоящее время я отвечаю на сенсорные события и рисую пути к CGLayer, который затем рисуется в контексте моих представлений. У меня есть доступ как к CGLayer, так и к самому представлению. В настоящее время я вывожу свой вид на изображение, используя:

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

Используется только вид для создания UIImage.

Поскольку представление имеет белый фон, оно включено в созданный мной UIImage. Я хотел бы получить UIImage, у которого нет этого белого фона, чтобы я мог отображать и записывать в файл PNG.

Я думаю, что мне следует использовать CGLayer, который у меня есть, но я не уверен, как получить его от типа CGLayerRef, к которому у меня есть доступ.

Любые идеи будут высоко оценены.

  • Алим

1 Ответ

5 голосов
/ 06 августа 2009

Я только что имел дело с этим. Не рисуйте фон на CGLayer, а затем установите фон UIView на:

self.backgroundColor = [UIColor clearColor];

Это должно сделать это, и у вашего png будет прозрачный фон.

...