标签: nsdata

将UIImage转换为NSData BUT保留为GIF文件

我有一个UIImage,它是一个GIF文件.

我需要让它成为一个NSData对象.但它需要保留一个GIF,所以我不能使用UIImageJPEGRepresentation.

有任何想法吗?

iphone cocoa-touch objective-c nsdata ios

3
推荐指数
2
解决办法
7845
查看次数

获取kb的音频文件大小

在我的应用程序中,我有一个以caf和aac格式存储的音频文件.我需要从音频网址获取kb中音频文件的大小.有没有办法达到这个要求?

iphone audio objective-c nsdata avaudioplayer

3
推荐指数
1
解决办法
1611
查看次数

我们可以在ios中使用nsdata创建电影播放器​​吗?

我知道我们可以使用创建电影播放器initWithContentURL:,我们可以传递NSUrl参数.这里我没有NSUrl,我只有NSData.通过使用它我可以创建电影播放器​​吗?

video nsdata mpmovieplayer ios

3
推荐指数
1
解决办法
4367
查看次数

Objective-C:将NSData转换为int或char

NSData * data;
NSFileHandle * file;

file = [NSFileHandle fileHandleForReadingAtPath: @"script.txt"]; //this is wrong, as I have to provide a full pathname, but disregard for now

[file seekToFileOffset: i]; //i not mentioned here, as this is only a snippet of code. Suffice to know that in the file it falls at the beginning of an integer I want to read

data = [file readDataOfLength: 5]; //5-digit integer that I want to read
Run Code Online (Sandbox Code Playgroud)

现在我如何将数据转换为可以使用的int(即用于执行算术运算)?

objective-c type-conversion nsdata

3
推荐指数
1
解决办法
1615
查看次数

无法在文件夹中写入nsdata

以下是代码:

NSData * imageData = [NSData dataWithContentsOfURL:imageURL];                

 [imageData writeToFile:savedImagePath options:NSDataWritingAtomic error:&error];
                            if(error != nil)
 NSLog(@"write error %@", error);   
Run Code Online (Sandbox Code Playgroud)

错误:

 write error Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0x8b7b850 {NSUnderlyingError=0x8b7d7c0 "The operation couldn’t be completed. No such file or directory", NSFilePath=/Users/alfa-1/Library/Application Support/iPhone Simulator/6.0/Applications/C24B228A-599E-4249-97A7-17775E8A546B/Library/Caches/ChannelListImages/http:/direct.domain.com/files/icons/1-all-cb.jpg, NSUserStringVariant=Folder}
Run Code Online (Sandbox Code Playgroud)

nsdata ios writetofile

3
推荐指数
1
解决办法
5875
查看次数

将NSData转换为CGImage然后再转换回NSData会使文件太大

我用相机制作了相机AVFoundation.

一旦我AVCaptureStillImageOutput完成了它的captureStillImageAsynchronouslyFromConnection:completionHandler:方法,我就像这样创建一个NSData对象:

         NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
Run Code Online (Sandbox Code Playgroud)

一旦我有了这个NSData对象,我想将图像 - 不用 - 转换为a UIImage.我发现我可以转换成a CGImage来这样做.

在我拥有imageData之后,我开始转换为CGImage的过程,但我发现CGImageRef最终比NSData对象大三十倍.

下面是我用来转换为代码CGImage来自NSData:

CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)(imageData));
CGImageRef imageRef = CGImageCreateWithJPEGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
Run Code Online (Sandbox Code Playgroud)

如果我尝试NSLog超出图像的大小,当它NSData是一个1.5-2兆字节的图像时,它会达到30兆字节!

size_t imageSize = CGImageGetBytesPerRow(imageRef) * CGImageGetHeight(imageRef);

    NSLog(@"cgimage size = %zu",imageSize);
Run Code Online (Sandbox Code Playgroud)

我想也许当你从NSData转到CGImage时,图像会解压缩,然后如果我转换回NSData,它可能会回到正确的文件大小.

imageData = (NSData *) CFBridgingRelease(CGDataProviderCopyData(CGImageGetDataProvider(imageRef)));
Run Code Online (Sandbox Code Playgroud)

以上与对象NSData相同.lengthCGImageRef

如果我尝试保存图像,则图像是无法打开的30mb图像.

我对使用CGImage完全不熟悉,所以我不确定我是从NSData转换为CGImage还是错误地返回,或者我是否需要调用某种方法再次解压缩.

提前致谢,

objective-c cgimage nsdata ios cgimageref

3
推荐指数
1
解决办法
4565
查看次数

使用AFNetwork上传NSData来终止我的APP

我正在尝试使用AFNetwork上传一个NSData图像,但出现了问题,我无法找到我的错误

这是我的代码:

NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"test.jpg"], 0.1);

NSMutableDictionary *postParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"this is only a test post for \"app\".", @"app",
                                   @"this POST for \"test\". ", @"test", nil];

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://url/upload.php" parameters:postParm constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" ];
} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSProgress *progress = nil;

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else …
Run Code Online (Sandbox Code Playgroud)

nsdata afnetworking afnetworking-2 nsurlsession nsurlsessionuploadtask

3
推荐指数
1
解决办法
1367
查看次数

memcpy()导致iOS中的EXC_BAD_ACCESS

我正在接受NSData我的套接字接收功能,我正在尝试将该数据复制到tempbuffer我的音频类中,我正在使用外部类型全局变量来执行此操作.

这是我的代码:

memcpy([recorder tempBuffer].mdata,(__bridger const void *)data,data.length);
Run Code Online (Sandbox Code Playgroud)

这里记录器是我extern的音频类的全局变量.

当控制到达这行代码时抛出异常,可能是错误.

objective-c memcpy nsdata ios

3
推荐指数
1
解决办法
2230
查看次数

base64encoded字符串中的Swift NSData返回nil

我在Swift中与服务器通信,检索图像数据.传入的数据被编码为base64字符串.我能够正确接收和显示编码的字符串.当我去使用NSData该类将字符串解码回二进制数据并显示...

println(NSData(base64EncodedString: imageString, options: NSDataBase64DecodingOptions(0)))
Run Code Online (Sandbox Code Playgroud)

输出是

nil
nil
nil
nil
nil
nil
Run Code Online (Sandbox Code Playgroud)

每个收到的图像一个.

我也试过了

println(NSData(base64EncodedString: imageString, options: nil))
Run Code Online (Sandbox Code Playgroud)

和相同的结果.沿路有什么我想念的吗?我会把图像串放好但是它们很长......

base64 nsdata swift

3
推荐指数
3
解决办法
4622
查看次数

Null传递给需要非null参数的被调用方

我一直在使用它来将CIImage转换为NSData很久了:

  NSData *data = [imageRep representationUsingType: NSPNGFileType
                            properties:nil];
Run Code Online (Sandbox Code Playgroud)

现在在El Capitan的第二行出现此错误:

Null passed to a callee that requires a non-null argument
Run Code Online (Sandbox Code Playgroud)

我可以通过在属性上使用空数组来解决此问题,如下所示:

NSData *data = [imageRep representationUsingType: NSPNGFileType
                                      properties: @{}];
Run Code Online (Sandbox Code Playgroud)

但是我怀疑这将来会给我带来麻烦。

这是解决此问题的正确方法吗?

macos cocoa nsdata ciimage

3
推荐指数
1
解决办法
1232
查看次数