iOS carregando fotos: compactação de tamanho de imagem, compactação de tamanho ao fazer upload, problemas com fotos de seleção múltipla QBImagePickerController

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 ];


2. O tamanho permanece o mesmo, mas o tamanho é compactado
Exemplo: quando o ASI carrega imagens,

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

3.1, Após tirar a foto, ela é ajustada automaticamente para um tamanho que não exceda a largura e a altura da tela:

    [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.





Acho que você gosta

Origin blog.csdn.net/lichuanliangios/article/details/51488487
Recomendado
Clasificación