解码iOS base64图像

解码iOS base64图像,ios,base64,uiimagepickercontroller,decode,encode,Ios,Base64,Uiimagepickercontroller,Decode,Encode,我在解码编码图像时总是遇到麻烦 我使用以下代码对从UIImagePickerController返回的图像进行编码: NSData *imageData2 = UIImageJPEGRepresentation(image, 1.0); NSString *encodedString = [imageData2 base64Encoding]; 我尝试将图像大小调整为600x600,我还尝试压缩图像 - (void)imagePickerController:(UIImagePicke

我在解码编码图像时总是遇到麻烦

我使用以下代码对从
UIImagePickerController
返回的图像进行编码:

NSData *imageData2 = UIImageJPEGRepresentation(image, 1.0);
    NSString *encodedString = [imageData2 base64Encoding];
我尝试将图像大小调整为600x600,我还尝试压缩图像

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [self imageWithImage:[info objectForKey:UIImagePickerControllerEditedImage] scaledToSize:CGSizeMake(600, 600)];

    imgPreviewSelected.image = [self imageWithImage:image scaledToSize:CGSizeMake(600, 600)];

    CGFloat compression = 0.9f;
    CGFloat maxCompression = 0.1f;
    int maxFileSize = 250*1024;

    NSData *imageData = UIImageJPEGRepresentation(image, compression);

    while ([imageData length] > maxFileSize && compression > maxCompression)
    {
        compression -= 0.1;
        imageData = UIImageJPEGRepresentation(image, compression);
    }

    image = [UIImage imageWithData:imageData];

    imagePickerReturnedImage = image;

    NSData *imageData2 = UIImageJPEGRepresentation(image, 1.0);
    NSString *encodedString = [imageData2 base64Encoding];

    [utils postData:@"example.com" : [NSString stringWithFormat:@"image=%@", encodedString]];

    [self dismissViewControllerAnimated:YES completion:NULL];
}
当我尝试解码发送到数据库的图像时,它告诉我文件已损坏

我尝试使用PHP和以下网站对其进行解码:

我的MYSQL数据库告诉我图像是1MB,我认为对于600x600的图像来说这是相当大的。没有压缩,它是1,3MB

我使用此方法缩放图像:

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

我希望任何人都能帮助我,thx我使用了另一种没有base64的方法,因此不需要回答。

您的代码看起来很正确。 你有没有试着复制你的Base64字符串在那个网站上解码

您可以通过以下方式检查图像大小:

NSLog(@"dataSize: %@",[NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);

你用了什么方法?