ridurre fotocamera/foto libreria di immagine dimensione del file per meno di 100 KB iphone

Voglio ridurre le dimensioni del file dell’immagine che da UIImagePickerController . Io uso questo metodo

NSData *imageData = UIImageJPEGRepresentation(immagine, 0.1);

ma ridurre 2.2 MB di file di immagine dimensione di 300 KB
Voglio che la mia immagine dimensione del file diventare meno di 100 KB.

Check out questa domanda: stackoverflow.com/questions/2313428/… [1]: stackoverflow.com/questions/2313428/…
Dopo tutto quello che ho trovato questa soluzione è la migliore stackoverflow.com/questions/612131/…

OriginaleL’autore Poooyak | 2012-12-29

3 Replies
  1. 2

    Modo più semplice per ridurre le dimensioni dell’immagine in chili è quello di ridurre la dimensione in pixel! Scala più piccola:

    CGFloat scaleSize = 0.2f;
    UIImage *smallImage = [UIImage imageWithCGImage:image.CGImage
                          scale:scaleSize
                          orientation:image.imageOrientation];
    Exactlly! Un’immagine di grandi dimensioni non possono essere ridimensionate a 100K in formato jpeg, anche al più alto livello di compressione, quindi, l’idea è quella di ridimensionare, poi comprimerlo.
    Io uso questo metodo e invece di 0,2 per scalesize ho impostato il 5 per ridurre le dimensioni dell’immagine 5 volte e poi utilizzare il metodo precedente, ma la dimensione del file non cambia.
    Scala di 1 (uno) significa stessa dimensione dell’immagine originale. Si dovrebbe utilizzare un valore minore di uno, non di più.
    questo metodo restituisce esattamente la stessa immagine, ma con una diversa densità mantenendo la stessa dimensione del file

    OriginaleL’autore JOM

  2. 8

    Apple docs stato:

    La qualità del risultato di immagine JPEG, espresso come un valore da 0.0
    a 1.0. Il valore 0.0 rappresenta la massima compressione (o più basso
    di qualità), mentre il valore 1.0 rappresenta una compressione minima (o massima
    qualità).

    E dal momento che la qualità di compressione è un CGFloat, supporta cifre decimali oltre la decimi. Detto questo, prova:

    NSData *imageData = UIImageJPEGRepresentation(image, 0.032);
    non ridurre di 300 kb

    OriginaleL’autore Mick MacCallum

  3. 1

    Prima ridimensionare l’immagine con il metodo sotto:

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

    chiamare questo:

    UIImage *newImage=yourImage;
    CGSize size=CGSizeMake(newImage.size.width/8,newImage.size.height/8);
    newImage=[self resizeImage:newImage newSize:size];

    E, infine, compresso l’immagine come necessario:

    NSData *imageData = UIImageJPEGRepresentation(newImage, 0.5);
    NSLog(@"Size of image = %lu KB",(imageData.length/1024));

    OriginaleL’autore ajay_nasa

Lascia un commento