Изображение в библиотеке фотографий не видно в Instagram

У меня есть приложение, которое обменивается изображениями и видео с различными службами. Одним из них является Instagram. Поскольку Instagram не поддерживает отправку видео напрямую, я исследовал этот блог.

Я смог сделать что-то похожее для видео с новой платформой Фото:

AVExport to convert to a proper video format.
PHPHotoLibrary > create new album.
PHPHotoLibrary > ad converted asset to the PHLibrary
PHPHotoLibrary > Fetch the PHAsset to get a library URL.

Отправьте URL библиотеки в Instagram. Этот процесс отлично подходит для видео. Однако у меня проблема с изображениями! По какой-то причине изображение будет сохранено в библиотеке, но они НЕ видны в Instagram.

Любые идеи, почему изображение, которое находится в PhotoLibrary не отображается в Instagram? Есть ли правильный способ конвертировать изображение перед выполнением PHLibrary creationRequeest?

Вот мой основной фрагмент для процесса изображения..

- (void)saveImageAsset:(UIImage*)theImage toAblum:(NSString*)title andCompletion:(void (^)(NSURL* libraryURL))completion {


__block NSString *objIdentifier;

NSData *imgData =  UIImagePNGRepresentation(theImage);
theImage = [UIImage imageWithData:imgData];

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    PHAssetCollection *assetCollection = [self albumWithTitle:title];

    PHAssetChangeRequest* createAssetRequest =
    [PHAssetChangeRequest creationRequestForAssetFromImage:theImage];
    PHObjectPlaceholder *assetPlaceholder = createAssetRequest.placeholderForCreatedAsset;

    PHAssetCollectionChangeRequest *albumChangeRequest =
    [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
    [albumChangeRequest addAssets:@[ assetPlaceholder ]];

    objIdentifier = assetPlaceholder.localIdentifier;


} completionHandler:^(BOOL success, NSError *error) {

    if (!success) {
        NSLog(@"performChanges Error %@", error);
    } else  NSLog(@"Write Image Good");

    //NSLog(@"objIdentifier = %@", objIdentifier);
    PHFetchResult *newFetch = [PHAsset fetchAssetsWithLocalIdentifiers:@[objIdentifier] options:nil];
    PHAsset *lastImageAsset = [newFetch lastObject];
   // NSLog(@"Image Fetch = %@ --lastImageAsset %@", newFetch, lastImageAsset);

    PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
    options.synchronous = YES;
    options.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat;
    options.networkAccessAllowed = NO;
    options.version = PHImageRequestOptionsVersionOriginal;

    [[PHImageManager defaultManager] requestImageForAsset:(PHAsset *)lastImageAsset
                                               targetSize:CGSizeMake(640,640)
                                              contentMode:PHImageContentModeDefault
                                                  options:options
                                            resultHandler:^(UIImage *result, NSDictionary *info) {

         //NSLog(@"info = %@", info);

         NSURL *finalImageURL = info[@"PHImageFileURLKey"];
         NSLog(@"finalImageURL = %@", finalImageURL);

         if (!finalImageURL) completion(nil);
         completion(finalImageURL);

     }];

}];

}

0 ответов

Другие вопросы по тегам