2016-04-18 10 views
0

Ich habe versucht, ein Bild progressiv in meiner App zu laden. Grundsätzlich habe ich versucht, während das Bild geladen wird, möchte ich das voll geladene Bild aus dem unscharfen Zustand zeigen. Ich habe versucht,Wie setze ich ein progressives Bild in iOS mit SDWebImage?

SDWebImageManager *manager = [SDWebImageManager sharedManager]; 
[manager downloadImageWithURL:[NSURL URLWithString:@"https://profile.microsoft.com/RegsysProfileCenter/Images/personal_info.jpg"] 
         options:0 
        progress:^(NSInteger receivedSize, NSInteger expectedSize) { 
         [self.profileBtn setImage:[UIImage imageWithData:[NSData dataWithBytes:&receivedSize length:sizeof(receivedSize)] scale:15] forState:UIControlStateNormal]; 
        } 
        completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { 
         if (image) { 
          // [self.profileBtn setImage:image forState:UIControlStateNormal]; 
         } 
        }]; 

Ist es möglich, ein Bild progressiv mit SDWebImage zu laden. Bitte hilf mir dabei.

+1

Haben Sie eine beliebige Thumb URL, die Sie schnell herunterladen können? In diesem Fall können Sie das Daumenbild anzeigen, bis das große Bild nicht heruntergeladen wurde. Ich hatte einmal den gleichen Zustand, den ich mit der Daumenbild-URL löse. Ansonsten ist die Verwendung des Fortschrittsbalkens nur eine Option. – Pawan

+0

Sehen Sie dies, wenn es Ihnen hilft https://github.com/JJSaccolo/UIActivityIndicator-for-SDWebImage/blob/master/UIImageView%2BUIActivityIndicatorForSDWebImage.m –

+0

Sie können diesem Link folgen, um Ihre Antwort zu erhalten: [http: // stackoverflow. com/questions/35267576/how-to-show-verschwommenes-Bild-vor-Download-wie-in-WhatsApp-in-ios] (http://stackoverflow.com/questions/35267576/how-to-show-blurred-image -vorher-downloading-in-WhatsApp-in-ios) – bhcool1690

Antwort

0

Sie Prozentsatz zeigen können temporäres Etikett oder unter Aktivitätsanzeige des Herunterladens (activityindicator auf Bildansicht oder Taste zeigen kann bis Download nicht abgeschlossen ist) wie im Gang Block,

NSInteger downloadCompleted = (receivedSize/ expectedSize) * 100; 
label.text = downloadCompleted; //temp label on image view or below activityindicator 

Hope this helfen :)

6

Sie diese Implementierung versuchen

+ (void)loadImageWithURLString:(NSString *)urlString forImageView:(UIImageView *)imageView { 
    [imageView sd_setImageWithURL:[Utilities stringToURL:urlString] 
       placeholderImage:[UIImage placeHolderImage] 
          options:SDWebImageProgressiveDownload]; 
} 

Die Option besagt, dass

/** 
    * This flag enables progressive download, the image is displayed progressively during download as a browser would do. 
    * By default, the image is only displayed once completely downloaded. 
    */ 
    SDWebImageProgressiveDownload = 1 << 3, 
+0

Beachten Sie, dass dies erfordert, dass die Dateien mit Progressive JPEG-Komprimierung gespeichert werden. – redent84

+1

Wenn Sie das Bild aus dem unscharfen Zustand anzeigen möchten, ist eine mögliche Lösung, eine Unschärfeschicht über Ihrem Platzhalterbild zu erstellen, wobei der Unschärfepegel durch den Prozentsatz des heruntergeladenen Downloads festgelegt wird. – HDT

Verwandte Themen