1. Compressão do tamanho da imagem
-( UIImage *) imageCompressForWidth:( UIImage *)sourceImage targetWidth:( CGFloat )defineWidth // Compressão de imagem, o segundo parâmetro é a largura final
{
CGSize imageSize = sourceImage. tamanho ;
CGFloat width = imageSize. largura ;
Altura CGFloat = imageSize. altura ;
CGFloat targetWidth = defineWidth;
CGFloat targetHeight = (targetWidth / largura) * altura;
UIGraphicsBeginImageContext ( CGSizeMake (targetWidth, targetHeight));
[sourceImage drawInRect : CGRectMake ( 0 , 0 ,targetWidth, targetHeight)];
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();
return novaImagem;
}
Exemplo de método:
UIImage *newImage=[ selfimageCompressForWidth :image targetWidth :image. tamanho . largura / 2 ];
NSData *data = UIImagePNGRepresentation(image); //descompactado
NSData *data = UIImageJPEGRepresentation (imagem , 0.5 );//compressão
3. Problemas com fotos de seleção múltipla QBImagePickerController
Método em QBImagePickerController.m
- ( NSDictionary *)mediaInfoFromAsset:( ALAsset *)asset
[mediaInfo setObject :[ UIImageimageWithCGImage :[[asset defaultRepresentation ] fullScreenImage ]] forKey : @"UIImagePickerControllerOriginalImage" ];
3.2, Após tirar a foto, ela ficará com a foto original:
[mediaInfo setObject :[ UIImageimageWithCGImage :[[asset defaultRepresentation ] fullResolutionImage ]] forKey : @"UIImagePickerControllerOriginalImage" ];
Em 3.3 e 3.2, se a foto for maior, ela vai virar 90 graus para a esquerda. A solução é:
[mediaInfo setObject :[ UIImageimageWithCGImage :[[asset defaultRepresentation ] fullResolutionImage ]
escala :[asset defaultRepresentation ]. escala
orientação :( UIImageOrientation )[asset defaultRepresentation ]. orientação ] forKey : @"UIImagePickerControllerOriginalImage" ];
Os três pontos acima em 3 são sentenças paralelas.