Fix wrong avatar generation for pics with side larger than 4096px

This commit is contained in:
Ilya Laktyushin 2020-12-29 03:16:56 +04:00
parent 83e0c1250e
commit c63e193f28

View File

@ -978,10 +978,22 @@
SSignal *imageSignal = nil;
if (fullSizeImage == nil)
{
imageSignal = [[self.requestOriginalFullSizeImage(_item, 0) filter:^bool(id result)
imageSignal = [[[self.requestOriginalFullSizeImage(_item, 0) filter:^bool(id result)
{
return [result isKindOfClass:[UIImage class]];
}] takeLast];
}] takeLast] map:^UIImage *(UIImage *image) {
if (avatar) {
CGFloat maxSide = [GPUImageContext maximumTextureSizeForThisDevice];
if (MAX(image.size.width, image.size.height) > maxSide) {
CGSize fittedSize = TGScaleToFit(image.size, CGSizeMake(maxSide, maxSide));
return TGScaleImageToPixelSize(image, fittedSize);
} else {
return image;
}
} else {
return image;
}
}];
}
else
{