2011-06-08 94 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