2011-06-08 47 views
0

基本上這就是我想要做的:我在我的電腦上有一張名爲image.png的圖片。如果通過按F2更改文件名並將其名稱更改爲image.txt,它將更改文件擴展名,並且圖像將變爲文本文檔。當你打開它時,你會看到你可以改變的所有圖像數據(如果你改變它,圖片不會回來)。您可以進行編輯,例如在圖像代碼之後添加一行不會影響圖像的行。完成此操作後,您可以將image.txt重命名爲image.png,並且圖片將返回。Xcode iPhone - 如何將圖像轉換爲文本進行操作?

我如何得到這個工作的編碼是否明智?我到目前爲止所做的是使用UIImagePNGRepresentation將圖像保存爲文檔目錄的路徑,並在文檔末尾添加一個.txt文件。然後我做NSString withcontentsoffile它是depreceated,它顯示了一些代碼,但它不一樣,當我在我的電腦上更改擴展名。如果我使用conentsoffile編碼NSString,則編碼不會顯示任何內容。我試過NSUTF8String ....我不是在Mac附近,所以我現在完全確定。

基本上我想添加文字到圖像(如果添加在.txt的底部不會弄亂圖像),然後將其更改回圖像,我似乎無法得到這個工作。

需要了信息問。我會經常檢查。

回答

1

這個怎麼樣?

NSData * imageData = UIImagePNGRepresentation(image); 
NSMutableData * newData = [imageData mutableCopy]; 

NSString * string = @"Data to be appended"; 

[newData appendData:[string dataUsingEncoding:NSUTF8StringEncoding]]; 

UIImage * newImage = [[UIImage alloc] initWithData:newData]; 
[newData release]; 
+0

非常感謝!這工作奇蹟。它將字符串放在最後並允許圖像仍然可以被查看。標誌着我你的答案是最好的一個,但我有一個問題,如果你不介意回答... 文件進行讀取到一個字符串,這樣我可以讀回我使用NSString會將myText * = [NSString的stringWithContentsOfFile消息:pngPath];哪些工作,但它表示它已被棄用,這是不好的。它想要它:NSString * myText = [NSString stringWithContentsOfFile:pngPath encoding:NSUTF8StringEncoding error:nil];但編碼不顯示任何內容。我應該使用什麼編碼? – SolidSnake4444 2011-06-09 04:39:34

+0

你爲什麼不把它看作是一個'NSData'對象?你會像上面那樣以原始形式得到它。您可以通過'bytes'方法訪問c風格的內容。 – 2011-06-09 04:54:16

+0

對不起,因爲我有點新,但我怎麼會讀它作爲一個NSData? – SolidSnake4444 2011-06-09 05:14:14