我一直在解码编码图像时遇到问题。
我使用以下代码对从返回的图像进行编码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 和以下网站对其进行解码: http ://www.motobit.com/util/base64-decoder-encoder.asp
我的 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