From c63e193f2847563359a72e220bbd5053b190f42f Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 29 Dec 2020 03:16:56 +0400 Subject: [PATCH] Fix wrong avatar generation for pics with side larger than 4096px --- .../Sources/TGPhotoEditorController.m | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/submodules/LegacyComponents/Sources/TGPhotoEditorController.m b/submodules/LegacyComponents/Sources/TGPhotoEditorController.m index 5093a30128..cbf564209e 100644 --- a/submodules/LegacyComponents/Sources/TGPhotoEditorController.m +++ b/submodules/LegacyComponents/Sources/TGPhotoEditorController.m @@ -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 {