2016-04-10 8 views
0

Ich benutze SDWebImage Bild wie folgt festgelegt:Wer ändert die Bildgröße? SDWebImage oder ContentMode

[self.imageView sd_setImageWithURL:topicModel.large_image] 
     placeholderImage:nil 
     options:0 
     progress:^(NSInteger receivedSize, NSInteger expectedSize) { 

    } completed:^(UIImage *image, 
     NSError *error, 
     SDImageCacheType cacheType, 
     NSURL *imageURL) { 
}]; 

danach, habe ich die contentMode des Imageview wie folgt aus:

if (topicModel.isBigPicture) { 
     self.imageView.contentMode = UIViewContentModeTop; 
     self.imageView.clipsToBounds = YES; 
    }else { 
     self.imageView.contentMode = UIViewContentModeScaleAspectFill; 
     self.imageView.clipsToBounds = NO; 
    } 

die Größe des Imageview ist (355, 200) ,
die Größe des Bildes ist größer als imageView, sowohl Breite und Höhe.

Wie wir alle wissen,
Wenn die topicModel BigPicture ist, wird die contentMode UIViewContentModeTop sein. UIViewContentModeTop bleiben gleich groß, nur positioniert angepasst.

Aber ich finde ein Problem?
In meinem Fall wird die Größe des Bildes in (300, XXX) konvertiert, XXX scheint berechnet von (image.realHeight * 300.0/image.realWidth)
Eigentlich ändere ich nicht die Größe des Bildes in meinem Projekt .

Hier ist meine Frage:
Was ist falsch mit meinem Code?
Wie wird die Breite des Bildes gleich der Breite des Bildes gemacht?

Antwort

0

Schließlich finde ich die Antwort.
Und der Grund ist, dass ich die neueste Version von SDWebImage

:-)

Hier wird die Lösung verwenden

, wenn Sie das Originalbild erhalten möchten, müssen Sie den Code in SDWebImage/SDWebImageDecoder.m wie folgt ändern:

CGContextRelease(context); 
    //add this method 
    UIImage *decompressedImage = [UIImage imageWithCGImage:decompressedImageRef]; 

    //delete this method 
    UIImage *decompressedImage = [UIImage imageWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation]; 
    CGImageRelease(decompressedImageRef); 

    return decompressedImage; 
    } 

, wenn Sie mehr wissen möchten, können Sie sehen den untenstehenden Link
SDWebImage ---- Images from web-url too small when using v. 3.7.4 and above