簡體   English   中英

在iOS應用中生成和保存圖像

[英]Generating and saving images in iOS app

我希望能夠從一組數據生成圖像。 生成圖像后,我想將其保存到相冊並在滾動視圖中顯示。 如何告訴應用程序創建圖像? 創建圖像后,如何在滾動視圖中顯示它? 同時,如何將圖像保存到相冊中?

無需贅述,這就是我的應用程序的作用:

它接收用戶輸入的一組數據(主要是整數數據),然后使用Core Graphics將其轉換為圖像(我可以生成圖像,並通過為[子類的視圖]生成新類將其顯示給視圖控制器。 UIView]部分)。 現在,我希望能夠保存該圖像以備將來使用(我希望能夠保存無限數量的圖像,因此NSUserDefaults不是我想要的)。 PNG文件將是理想的,但是我知道必須進行轉換才能做到這一點。

我正在嘗試嘗試的事情:

UIImage有很多創建者,但我不知道要使用哪一個。 我應該創建一個新類來生成圖像嗎? 我是否應該在另一個視圖控制器中生成圖像並將其保存在那里並在要顯示它的視圖控制器中訪問它? 我是否應該全部跳過Core Graphics並僅使用OpenGL ES(我有使用OpenGL的經驗,只是沒有在iPhone上使用)?

您沒有提供關於您正在做的事情的太多細節,因此很難用一般性的術語來建議:

  1. 您如何生成圖像? 如果基於UIImage,則保存圖像很簡單-使用UIImageWriteToSavedPhotosAlbum 該文檔還說明了PNG和JPEG表示功能。
  2. 如果您還沒有UIImage(即,您只是在圖形上下文中渲染),則可以使用不同的方法來處理所需的內容。 查看CGBitmapContextCreateImage上的Core Graphics文檔和UIGraphicsBeginImageContextWithOptions上的UIKit文檔。

更新:

關於文本,您是否在調用UIGraphicsGetImageFromCurrentImageContext之前調用draw方法?

我通常在您的方法上使用Core Graphics版本,但是邏輯是相似的:

CGContextRef context = CGBitmapContextCreate(...);
// ... do some other drawing...
NSString* foo = @"Foo";
CGRect bounds = CGRectMake(0,0,100,100);
[foo drawInRect:bounds withFont:[UIFont systemFontOfSize:10]];
CGImageRef image = CGBitmapContextCreateImage(context);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM