Изменение размера изображения с помощью PHImageManager с сохранением аспектного соответствия и добавлением прозрачного фона - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу изменить размер изображения до квадратного размера.Если исходное изображение не квадратное, я хочу добавить прозрачный фон, чтобы сохранялось соотношение сторон изображения.Мой код выглядит следующим образом, я знаю, что пока не делаю ничего, чтобы добавить прозрачный фон.Есть ли способ, которым requestImageForAsset будет делать что-то подобное по умолчанию?

PHImageRequestOptions *requestOptions =  [[PHImageRequestOptions alloc] init];
            requestOptions.resizeMode   = PHImageRequestOptionsResizeModeExact;
            requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
            requestOptions.synchronous = true;
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0];
            PHImageManager *manager = [PHImageManager defaultManager];

            [manager requestImageForAsset:_asset
                     targetSize:!_isLogo? LARGE_IMAGE_SIZE : COMPANY_LOGO_LARGE_SIZE
                     contentMode:PHImageContentModeAspectFit
                     options:requestOptions
                     resultHandler:^void(UIImage *image, NSDictionary *info) {

                         NSData *imageData = UIImagePNGRepresentation(image);
                         NSString *filename = [NSString stringWithFormat:@"/img_%f.png", [[Utils getCurrentDate] timeIntervalSince1970]];
                         NSString *tempPath = [documentsDirectory stringByAppendingString:filename];
                         [imageData writeToFile:tempPath atomically:YES];
                         largeImage = image;
            }];
...