标签: uiimagepngrepresentation

UIImagePNGRepresentation问题?/图像旋转90度

我想从UIImagePickerController加载图像,然后将选定的照片保存到我的应用程序的文档目录中.

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *data1 = UIImagePNGRepresentation(image);

NSString *fileName = "1.png";
NSString *path = //get Document path, then add fileName
BOOL succ = [data1 writeToFile:path atomically:YES];
Run Code Online (Sandbox Code Playgroud)

但是在我将图像保存到我的文档后,我发现,图像旋转了90度,然后我将方法UIImagePNGRepresentation更改为UIImageJPEGRepresentation,这次没关系,有谁知道问题是什么?

iphone cocoa-touch uiimagepngrepresentation

48
推荐指数
4
解决办法
3万
查看次数

不使用UIImagePng表示或UIImageJpegRepresentation将UIImage转换为NSData

我需要转换UIImageNSData但不使用UIImagePngRepresentation或者UIImageJpegRepresentation,对于来自photolib的图像我可以使用此处提到的assetlib方法使用ALAssetsLibrary和ALAsset取出Image作为NSData,但对于捕获的图像,assset url不存在因此在那种情况下我需要转换UIImage直接用exif数据的字节,我该怎么做到这一点?请帮忙

assets uiimage nsdata ios uiimagepngrepresentation

21
推荐指数
2
解决办法
2万
查看次数

作为PNG Swift的NSSI的NSI映像

我正在写一个基于iOS应用程序的Mac应用程序.下面的代码将UIImage转换为NSData以上传到Parse.com.

我想为Mac做同样的事情,但我似乎无法将其转换为NSData.我该怎么办?

谢谢

var image = UIImage(named: "SmudgeInc")

let imageData = UIImagePNGRepresentation(image)

let imageFile = PFFile(name:"image.png", data:imageData)
Run Code Online (Sandbox Code Playgroud)

nsimage uiimage nsdata uiimagepngrepresentation parse-platform

15
推荐指数
1
解决办法
9308
查看次数

有什么方法可以比UIImagePNGRepresentation更快地编码PNG?

我正在生成一堆瓷砖CATiledLayer.在iPhone 4S上以4个级别的细节生成120个256 x 256的图块需要大约11秒钟.图像本身适合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);
}
Run Code Online (Sandbox Code Playgroud)

虽然这会产生较小的PNG文件(赢!),但它需要大约13秒,比以前多2秒.

有没有办法CGImage更快地编码PNG图像?也许使用NEONlibjpeg-turbo这样的ARM扩展(iPhone 3GS +)的库呢?

是否有比PNG更好的格式来保存不占用大量空间的瓷砖?

我能够提出的唯一可行选择是将磁贴大小增加到512 x 512.这会将编码时间减少一半.不知道那会对我的滚动视图做些什么.该应用适用于iPad 2+,仅支持iOS 6(使用iPhone 4S作为基线).

uiimage catiledlayer ios cgimageref uiimagepngrepresentation

13
推荐指数
1
解决办法
1941
查看次数

仅在iOS 5.1+上的UIImagePNGRepresentation中的png_error

我们遇到了一个奇怪的崩溃,其中UIImagePNGRepresentation()有时会导致png_error调用.我们无法在内部任何设备上重现此错误.

以下是我们的HockeyApp崩溃日志中的堆栈跟踪示例:

Thread 0 Crashed:
0   libsystem_kernel.dylib         0x3167132c __pthread_kill + 8
1   libsystem_c.dylib              0x33d6729f abort + 94
2   ImageIO                        0x346c38bf png_error + 114
3   ImageIO                        0x346c2fe3 png_write_end + 46
4   ImageIO                        0x346bf069 writeOnePng + 2260
5   ImageIO                        0x346be78b _CGImagePluginWritePNG + 82
6   ImageIO                        0x346be6fd CGImageDestinationFinalize + 132
7   UIKit                          0x31346e23 UIImagePNGRepresentation + 274
Run Code Online (Sandbox Code Playgroud)

我们只在运行iOS 5.1及更高版本的设备上看到此崩溃日志.我们实际上已经从iOS 6崩溃了,所以这个bug还没有修复.

我编写了一个测试应用程序,可下载超过16,000个可能的图像,我们的应用程序可以显示这些图像,所有这些图像都可以下载并保存到磁盘而没有任何问题.对这个要点的一些回应暗示这个问题可能是由于图像损坏引起的,但看到我如何下载超过16,000张图片而且从未出现过问题,我认为不会出现这种情况.

我正在研究的最新假设是,以某种方式下载的数据已损坏,因此正在创建损坏的UIImage.但是,所有创建损坏的UIImage的尝试都失败了.Apple似乎为UIImage创建了一个健壮的构造函数,这样我传入的任何无效内容都会导致从构造函数返回nil.

UIImagePNGRepresentation有没有其他人经历过这样的事情?

png image ios ios5.1 uiimagepngrepresentation

10
推荐指数
1
解决办法
1422
查看次数

如何使用UIImagePNGRepresentation压缩图像大小 - iOS?

我正在使用UIImagePNGRepresentation保存图像.结果图像的大小为30+ KB,在我的情况下这是大的.

我尝试使用UIImageJPEGRepresentation它,它允许压缩图像,所以图像保存在<5KB大小,这是伟大的,但保存为JPEG给它白色背景,我不想要(我的图像是圆形的,所以我需要保存它透明背景).

如何压缩图像大小UIImagePNGRepresentation

objective-c uiimage uiimagejpegrepresentation ios uiimagepngrepresentation

10
推荐指数
1
解决办法
6233
查看次数

UIImagePNGRepresentation(UIImage())返回nil

为什么要UIImagePNGRepresentation(UIImage())回报nil

我正在尝试UIImage()在我的测试代码中创建一个断言它是否正确传递.

我对两个UIImage的比较方法使用了UIImagePNGRepresentation(),但由于某种原因,它正在返回nil.

谢谢.

uiimage uiimagepngrepresentation swift

9
推荐指数
2
解决办法
8630
查看次数

UIImagePickerControllerOriginalImage与原始资产数据

在我正在开发的应用程序中,我使用的是用户从相册中选择的图像.我需要将该照片的高分辨率版本上传到我的服务器.

我正在使用imagePickerController,我已经确定我有2个选项

  • 从UIImagePickerControllerOriginalImage使用UIImage
  • 通过使用UIImagePickerControllerReferenceURL和ALAssetsLibrary assetForURL获取原始资产(我不喜欢这样,因为它提示用户使用他们当前的位置,我不需要)

我的问题是...... 如果我使用第一个选项和第二个选项,图像的质量是否有任何差异?

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

    //option 1
            UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
            NSData *imgData = UIImagePNGRepresentation(image);

    // option 2 (will prompt user to allow use of current location)
            NSURL *imgURL = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
            __block NSData* imgData;

            ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];

            [assetLibrary assetForURL:img resultBlock:^(ALAsset *asset)
             {
                 ALAssetRepresentation *rep = [asset defaultRepresentation];
                 Byte *buffer = (Byte*)malloc(rep.size);
                 NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
                 imgData = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES]; 
             }
                       failureBlock:^(NSError *err) {
                             NSLog(@"Error: %@",[err …
Run Code Online (Sandbox Code Playgroud)

iphone xcode alassetslibrary ios5 uiimagepngrepresentation

8
推荐指数
1
解决办法
3586
查看次数

来自CIImage的PNG/JPEG表示始终返回nil

我目前正在制作照片编辑应用.

当用户选择照片时,使用以下代码将其自动转换为黑白照片:

func blackWhiteImage(image: UIImage) -> Data {
    print("Starting black & white")

    let orgImg = CIImage(image: image)
    let bnwImg = orgImg?.applyingFilter("CIColorControls", withInputParameters: [kCIInputSaturationKey:0.0])

    let outputImage = UIImage(ciImage: bnwImg!)

    print("Black & white complete")

    return UIImagePNGRepresentation(outputImage)!
}
Run Code Online (Sandbox Code Playgroud)

我对此代码的问题是我一直收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)

我的代码略有不同,但是当它到达该UIImagePNG/JPEGRepresentation(xx)部分时它仍然会中断.

是否有任何方法可以从CIImage中获取PNG或JPEG数据,以便在图像视图/ UIImage中使用?

任何其他方法都没有详细说明应该使用什么代码.

uiimage uiimagejpegrepresentation uiimagepngrepresentation ciimage swift

7
推荐指数
1
解决办法
2293
查看次数

如何知道这个图像是jpg或png iphone

我想从UIImagepicker中选择一个图像,在相机胶卷中有PNG和JPG格式.

我需要将其转换为NSData.不过,我需要知道这是图像UIImageJPEGRepresentation还是UIImagePNGRepresentation,所以我可以将其转换.

UIImage *orginalImage = [info objectForKey:UIImagePickerControllerOriginalImage];    
    [picker dismissViewControllerAnimated:YES completion:nil];
    NSData *orgData = UIImagePNGRepresentation(orginalImage);
Run Code Online (Sandbox Code Playgroud)

iphone xcode uiimagejpegrepresentation ios uiimagepngrepresentation

5
推荐指数
1
解决办法
8713
查看次数