Instagram iOS-крючки с не-квадратными изображениями

Теперь, когда приложение Instagram может обрабатывать и отправлять не квадратные изображения из этого приложения, я надеялся, что я могу отправить не квадратные изображения в приложение Instagram из моего приложения, используя те же предоставленные iPhone-крючки, которые я использовал (https://instagram.com/developer/iphone-hooks/?hl=en). Тем не менее, по-прежнему кажется, что я обрезал свои изображения до квадрата и не предоставлял мне возможность расширить их до их неквадратного размера (в отличие от того, когда я загружаю неквадратную фотографию из библиотеки непосредственно из приложения Instagram, и это позволяет мне расширьте его до нестандартных размеров). Кому-то повезло отправлять не квадратные изображения? Я надеюсь, что там будет какая-то настройка, которая заставит ее работать.

1 ответ

Я тоже надеялся, что с обновлением возьмут фотографии без квадрата, но вы застряли со старым решением для публикации не квадратных фотографий.... матовый их квадрат с белым.

https://github.com/ShareKit/ShareKit/blob/master/Classes/ShareKit/Sharers/Services/Instagram/SHKInstagram.m

- (UIImage *)imageByScalingImage:(UIImage*)image proportionallyToSize:(CGSize)targetSize {
UIImage *sourceImage = image;
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = targetSize.width;
CGFloat targetHeight = targetSize.height;
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
if (CGSizeEqualToSize(imageSize, targetSize) == NO) {
 CGFloat widthFactor = targetWidth / width;
 CGFloat heightFactor = targetHeight / height;
 if (widthFactor < heightFactor)
 scaleFactor = widthFactor;
 else
 scaleFactor = heightFactor;
 scaledWidth = width * scaleFactor;
 scaledHeight = height * scaleFactor;
 // center the image
 if (widthFactor < heightFactor) {
 thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
 } else if (widthFactor > heightFactor) {
 thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
 }
}
// this is actually the interesting part:
UIGraphicsBeginImageContext(targetSize);
[(UIColor*)SHKCONFIG(instagramLetterBoxColor) set];
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0,0,targetSize.width,targetSize.height));
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
if(newImage == nil) NSLog(@"could not scale image");
return newImage ;

}

licensed under cc by-sa 3.0 with attribution.