Size: a a a

iOS Developers — русскоговорящее сообщество

2021 February 12

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
с камеры или из галереи, потом я его ресайзю и получаю измененный UIImage
@MeGaPk ты с этим бился недавно
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
я чет не думал, что UIImageJPEGRepresentation на UIImage может дать nil 🤔
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
ну я бы попробовал такой костыль: если не удалось получить данные, срендерить рисунок в контекст и взять рисунок из контекста. решение такое себе и не факт что поможет, но пока нет возможности повторить думаю у этого способа есть шанс решить проблему. на уровне бизнеса будет не важно каким образом проблема решена, если поможет =)
источник

NK

Nameless King in iOS Developers — русскоговорящее сообщество
Anton K.
я чет не думал, что UIImageJPEGRepresentation на UIImage может дать nil 🤔
guard let?
источник

IG

Ivan Gaydamakin in iOS Developers — русскоговорящее сообщество
Anton K.
сейчас делаю, чтобы UIImage не хранился в памяти, а загружался в tmp директорию
```
- (UIImage *)scaledImageFromFileAtURL:(NSURL *)url compressionFlow:(HMThumbnailCompressionFlow)compressionFlow {
   if (compressionFlow ==
HMThumbnailCompressionFlowEmpty) {
       return [UIImage new];
   }
   UIImage *result;
   @autoreleasepool {
       CGSize screenSize = [UIScreen mainScreen].bounds.size;
       CGFloat scale = 2;
       CGFloat pixelSize = 0;
       if (compressionFlow ==
HMThumbnailCompressionFlowSoft) {
           pixelSize = MAX(screenSize.width, screenSize.height);
       }
       else {
           pixelSize = MIN(screenSize.width, screenSize.height);
       }
       pixelSize *= scale;
       
       NSDictionary *options = @{(NSString *)kCGImageSourceCreateThumbnailFromImageIfAbsent:@(YES),
                                 (NSString *)kCGImageSourceCreateThumbnailWithTransform:@(YES),
                                 (NSString *)kCGImageSourceShouldCacheImmediately:@(YES),
                                 (NSString *)kCGImageSourceThumbnailMaxPixelSize:@(pixelSize),
                                 (NSString *)kCGImageSourceCreateThumbnailFromImageAlways:@(YES),
                                 (NSString *)kCGImageSourceShouldCache:@(NO)};
       CGImageSourceRef imageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)url, NULL);
       CGImageRef resultRef = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, (__bridge CFDictionaryRef)options);
       result = [UIImage imageWithCGImage:resultRef];
       CGImageRelease(resultRef);
   }
   return result;
}

```

ресайз без потребления 100500 памяти
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Denis Kim
ну я бы попробовал такой костыль: если не удалось получить данные, срендерить рисунок в контекст и взять рисунок из контекста. решение такое себе и не факт что поможет, но пока нет возможности повторить думаю у этого способа есть шанс решить проблему. на уровне бизнеса будет не важно каким образом проблема решена, если поможет =)
нормал костыль такой :)
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Ivan Gaydamakin
```
- (UIImage *)scaledImageFromFileAtURL:(NSURL *)url compressionFlow:(HMThumbnailCompressionFlow)compressionFlow {
   if (compressionFlow ==
HMThumbnailCompressionFlowEmpty) {
       return [UIImage new];
   }
   UIImage *result;
   @autoreleasepool {
       CGSize screenSize = [UIScreen mainScreen].bounds.size;
       CGFloat scale = 2;
       CGFloat pixelSize = 0;
       if (compressionFlow ==
HMThumbnailCompressionFlowSoft) {
           pixelSize = MAX(screenSize.width, screenSize.height);
       }
       else {
           pixelSize = MIN(screenSize.width, screenSize.height);
       }
       pixelSize *= scale;
       
       NSDictionary *options = @{(NSString *)kCGImageSourceCreateThumbnailFromImageIfAbsent:@(YES),
                                 (NSString *)kCGImageSourceCreateThumbnailWithTransform:@(YES),
                                 (NSString *)kCGImageSourceShouldCacheImmediately:@(YES),
                                 (NSString *)kCGImageSourceThumbnailMaxPixelSize:@(pixelSize),
                                 (NSString *)kCGImageSourceCreateThumbnailFromImageAlways:@(YES),
                                 (NSString *)kCGImageSourceShouldCache:@(NO)};
       CGImageSourceRef imageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)url, NULL);
       CGImageRef resultRef = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, (__bridge CFDictionaryRef)options);
       result = [UIImage imageWithCGImage:resultRef];
       CGImageRelease(resultRef);
   }
   return result;
}

```

ресайз без потребления 100500 памяти
спосеб, почитаю
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Nameless King
guard let?
ну оно у меня и так if let imageData = UIImageJPEGRepresentation(image, 0.9) {

только че толку, изображение то пользователю надо загрузить
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
приложение не крашится, просто может например 2 из 10 изображений не загрузиться
источник

NK

Nameless King in iOS Developers — русскоговорящее сообщество
Anton K.
приложение не крашится, просто может например 2 из 10 изображений не загрузиться
значит тип ошибка сети? нужно обертку мб какую, которая если не может загрузить, повторяет еще раз или два
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Nameless King
значит тип ошибка сети? нужно обертку мб какую, которая если не может загрузить, повторяет еще раз или два
возможно и сеть. сейчас разбираюсь
источник

D

Dmitry in iOS Developers — русскоговорящее сообщество
что не так с этими констрейнтами?
источник

ЕН

Егор Налобин... in iOS Developers — русскоговорящее сообщество
Dmitry
что не так с этими констрейнтами?
Translate resizing mask into constraints = false попробуй
Или наоборот
В общем вот направление
Копай
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
недостаточно кода. но возможно они кофликтуют с другими констрейнтами которые по умолчанию создаются
источник

D

Dmitry in iOS Developers — русскоговорящее сообщество
Егор Налобин
Translate resizing mask into constraints = false попробуй
Или наоборот
В общем вот направление
Копай
спасибо, помогло
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Пользователь с ролью "Поддержка пользователей" может ставить билды из testflight?
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Загрузка бета-версии это же оно?
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
Пользователь с ролью "Поддержка пользователей" может ставить билды из testflight?
Да
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
Загрузка бета-версии это же оно?
Да, могут. Любые вроде юзеры в коннекте могут
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Вовка
Да, могут. Любые вроде юзеры в коннекте могут
супер, спасибо
источник