2015-09-08 10 views
7

Instagramアプリはそのアプリ内から非正方形の画像を処理して投稿できるようになったので、アプリを使用して非正方形の画像をInstagramアプリに送信できることを期待していました使用しているiPhoneのフックを提供しました(https://instagram.com/developer/iphone-hooks/?hl=en)。しかし、それでも私の画像を四角に切り取っているように見え、非正方形のサイズに拡大するオプションを私に与えていないようです(インスタントグラムのアプリケーションの中からライブラリから非正方形の写真を直接読み込んでそれを非正方形の元の寸法に拡大する)。誰も正方形以外の画像を送信する運がなかった?私はそれを動作させるいくつかの調整があることを望んでいます。Instagram iOSフックと正方形以外の画像

+0

また、私はこのために探しています。違う比率でテストしましたか? Instagramアプリ内では、ポートレート画像を少し作っているようですので、右の矩形を作ってみる必要がありますか? –

+0

興味深いことに、インスタントグラムアプリ自体は、あなたが風景や肖像画を撮ることができないようです。これを可能にするライブラリからインポートされた唯一の画像。この新しい "機能"は半分しか焼かれていないようです。 – AndyRyan

答えて

0

私はあまりにも正方形の写真を更新してもらいたいと思っていましたが、正方形ではない写真を投稿するための古い解決策に悩まされています。

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 ; 

}

+0

バグを報告することをお勧めします。 – troppoli

関連する問題