谁改变图像的大小? SDWebImage 或 ContentMode
Who change the image's size? SDWebImage or ContentMode
我使用 SDWebImage 设置图像是这样的:
[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) {
}];
在此之后,我将 imageView 的 contentMode 设置为:
if (topicModel.isBigPicture) {
self.imageView.contentMode = UIViewContentModeTop;
self.imageView.clipsToBounds = YES;
}else {
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
self.imageView.clipsToBounds = NO;
}
imageView的大小为(355, 200),
图像的大小 比 imageView 大,包括宽度和高度。
众所周知,
如果 topicModel 是 bigPicture,contentMode 将是 UIViewContentModeTop。
UIViewContentModeTop 保持相同大小,只是调整了位置。
但是我发现了一个问题?
在我的例子中,图像的大小将转换为 (300, XXX),XXX 似乎通过 (image.realHeight * 300.0 / image.realWidth)
计算
实际上,我不会更改项目中图像的大小。
这是我的问题:
我的代码有什么问题?
如何让图片的宽度和imageView的宽度一致?
终于找到答案了
原因是我使用了最新版本的 SDWebImage
这是解决方案:-)
如果你想得到原始图像,你必须像这样更改SDWebImage/SDWebImageDecoder.m
中的代码:
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;
}
想了解更多详情,可以看下面link
SDWebImage ---- Images from web-url too small when using v. 3.7.4 and above
我使用 SDWebImage 设置图像是这样的:
[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) {
}];
在此之后,我将 imageView 的 contentMode 设置为:
if (topicModel.isBigPicture) {
self.imageView.contentMode = UIViewContentModeTop;
self.imageView.clipsToBounds = YES;
}else {
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
self.imageView.clipsToBounds = NO;
}
imageView的大小为(355, 200),
图像的大小 比 imageView 大,包括宽度和高度。
众所周知,
如果 topicModel 是 bigPicture,contentMode 将是 UIViewContentModeTop。
UIViewContentModeTop 保持相同大小,只是调整了位置。
但是我发现了一个问题?
在我的例子中,图像的大小将转换为 (300, XXX),XXX 似乎通过 (image.realHeight * 300.0 / image.realWidth)
计算
实际上,我不会更改项目中图像的大小。
这是我的问题:
我的代码有什么问题?
如何让图片的宽度和imageView的宽度一致?
终于找到答案了
原因是我使用了最新版本的 SDWebImage
这是解决方案:-)
如果你想得到原始图像,你必须像这样更改SDWebImage/SDWebImageDecoder.m
中的代码:
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;
}
想了解更多详情,可以看下面link
SDWebImage ---- Images from web-url too small when using v. 3.7.4 and above