我正在UIGraphicsBeginImageContextWithOptions(UIScreen.mainScreen().bounds.size, true, 0)
拍摄图片上下文的“快照”,并最终使用
UIImage
var renderedImage = UIGraphicsGetImageFromCurrentImageContext()
但是我需要在不使用UIImageJPEGRepresentation
或UIImagePNGRepresentation
的情况下获取此UIImage的NSData表示形式(因为它们生成的文件比原始UIImage大)。我怎么能这样做?
答案 0 :(得分:0)
我不确定你的意思是什么?#34;更大"比原来的UIImage。支持UIImage对象的数据至少与将其转换为JPG
所获得的数据一样大,并且大致相当于将其转换为PNG
所获得的数据。
渲染图像的点数将是屏幕尺寸的两倍,因为您已将视网膜屏幕渲染为图像。
您可以通过使图像上下文的比例为1来避免这种情况并将图像渲染为非视网膜:
UIGraphicsBeginImageContextWithOptions(UIScreen.mainScreen().bounds.size, true, 1)
答案 1 :(得分:0)
这些生成的文件比原始的UIImage大。)我怎么能这样做?
图像文件包含压缩数据,而NSData是原始的,即未压缩。因此,当写入文件时,NSData在所有情况下都会更大。
有关其他问题的更多信息:convert UIImage to NSData