Tag: uiimagepngrepresentation

AVCaptureStillImageOutput&UIImagePNGRepresentation

对于我认为不应该那么困难的事情,我很难过,所以我认为我必须从错误的angular度看问题。 为了解如何AVCaptureStillImageOutput和相机工作,我做了一个小应用程序。 这个应用程序能够拍照并将其保存为PNG文件(我不需要JPEG)。 下次启动应用程序时,会检查文件是否存在,如果存在,则将存储在文件内的图像用作应用程序的背景视图。 这个想法很简单。 问题是它不起作用。 如果有人能告诉我我做错了什么,这将是非常有帮助的。 我希望图片以与显示时相同的方式出现在背景上,但是它被旋转或者尺寸错误.. .. 这里是相关的代码(如果需要,我可以提供更多的信息)。 viewDidLoad方法: override func viewDidLoad() { super.viewDidLoad() // For the photo capture: captureSession.sessionPreset = AVCaptureSessionPresetHigh // Select the appropriate capture devices: for device in AVCaptureDevice.devices() { // Make sure this particular device supports video. if (device.hasMediaType(AVMediaTypeVideo)) { // Finally check the position and confirm we've got […]

任何方式来编码PNG比UIImagePNGRepresentation更快?

我正在为CATiledLayer生成一堆瓷砖。 大约需要11秒,在iPhone 4S上生成256个256个细节的120个贴图。 图像本身适合2048 x 2048。 我的瓶颈是UIImagePNGRepresentation 。 生成每个256 x 256图像大约需要0.10-0.15秒。 我已经尝试在不同的背景队列上生成多个贴图,但这只能将其缩减到大约9-10秒。 我也尝试使用这样的代码的ImageIO框架: – (void)writeCGImage:(CGImageRef)image toURL:(NSURL*)url andOptions:(CFDictionaryRef) options { CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((__bridge CFURLRef)url, (__bridge CFStringRef)@"public.png", 1, nil); CGImageDestinationAddImage(myImageDest, image, options); CGImageDestinationFinalize(myImageDest); CFRelease(myImageDest); } 虽然这产生较小的PNG文件(胜利!),它需要约13秒,比以前多2秒。 有什么办法来更快地从CGImage编码PNG图像? 也许一个像libjpeg-turbo那样使用NEON ARM扩展(iPhone 3GS +)的库呢? 有没有比PNG更好的格式来节省不占用大量空间的瓷砖? 我已经能够提出的唯一可行的select是将拼贴大小增加到512 x 512.这将编码时间减less了一半。 不知道这将做我的滚动视图。 该应用程序是为iPad 2 +,只支持iOS 6(使用iPhone 4S作为基准)。

将UIImage转换为NSData而不使用UIImagePngrepresentation或UIImageJpegRepresentation

我需要将UIImage转换为NSData但不使用UIImagePngRepresentation或UIImageJpegRepresentation ,从photolib图像我可以使用这里提到的assetlib方法使用ALAssetsLibrary和ALAsset取出图像作为NSData ,但对于捕获的图像,assset url不存在,因此在这种情况下我需要将UIImage直接转换为带有exif数据的字节,我该如何做到这一点? 请帮忙