2015-09-08 9 views
7

अब इंस्टाग्राम ऐप उस ऐप के भीतर से गैर स्क्वायर छवियों को संभाल और पोस्ट कर सकता है, मैं उम्मीद कर रहा था कि मैं अपने ऐप से इंस्टाग्राम ऐप को गैर-स्क्वायर छवियां भेज सकता हूं प्रदान की iPhone हुक मैं उपयोग कर रहे हैं (https://instagram.com/developer/iphone-hooks/?hl=en)। हालांकि, यह अभी वर्ग मेरी छवियों फसल होने के लिए और नहीं मुझे जब मैं Instagram अनुप्रयोग के भीतर से सीधे पुस्तकालय से एक गैर वर्ग तस्वीर लोड के विपरीत उनके गैर वर्ग आकार (के लिए उन्हें विस्तार करने के लिए विकल्प दे रहा है और यह मेरे की सुविधा देता है इसे अपने गैर-वर्ग मूल आयामों में विस्तारित करें)। किसी को भी गैर-स्क्वायर छवियों को भेजने में कोई भाग्य था? मुझे उम्मीद है कि कुछ चिमटा है जो इसे काम करेगा।गैर-स्क्वायर छवियों के साथ Instagram आईओएस हुक

+0

मैं भी इस के लिए देख रहा हूँ। क्या आपने विभिन्न अनुपात का परीक्षण किया था? ऐसा लगता है कि Instagram एप्लिकेशन के अंदर, यह एक छोटे चित्र चित्रों फसलों, तो शायद हम फसल के लिए सही आयत को खोजने के लिए है? –

+0

क्या दिलचस्प है कि instagram एप्लिकेशन को स्वयं आप या तो लैंडस्केप या पोर्ट्रेट छवियों लेने के लिए अनुमति देने के लिए प्रतीत नहीं होता है। इसकी एकमात्र छवियां लाइब्रेरी से आयात की गई हैं जो इसकी अनुमति देती है। ऐसा लगता है कि इस नई "फीचर" केवल आधा बेक्ड है। – 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

संबंधित मुद्दे