2015-09-08 11 views
7

Ora che l'applicazione Instagram in grado di gestire e immagini successive non quadrati dall'interno che app, speravo che avrei potuto inviare le immagini non quadrati per l'applicazione Instagram dalla mia app utilizzando lo stesso fornito ganci iPhone che ho usato (https://instagram.com/developer/iphone-hooks/?hl=en). Tuttavia, sembra ancora che le mie immagini vengano ritagliate in quadrato e non mi danno la possibilità di estenderle alle loro dimensioni non quadrate (a differenza di quando carico una foto non quadrata dalla libreria direttamente dall'app Instagram e mi consente di espanderlo alle sue dimensioni originali non quadrate). Qualcuno ha avuto fortuna nell'invio di immagini non quadrate? Spero che ci sia qualche ritocco che lo farà funzionare.Instagram iOS si aggancia con le immagini non quadrati

+0

Sto anche alla ricerca di questo. Hai provato diverse proporzioni? Sembra che all'interno dell'app Instagram, si ritagli un po 'di ritratti, quindi forse dobbiamo trovare il rettangolo giusto da ritagliare? –

+0

cosa interessante è che l'applicazione Instagram per sé non sembra consentire di prendere orizzontale o verticale immagini neanche. Le sue uniche immagini importate dalla libreria che lo consentono. Sembra che questa nuova "caratteristica" sia solo a metà cottura. – AndyRyan

risposta

0

Anche io speravo che con l'aggiornamento avessero scattato foto non quadrate, ma sei bloccato con la vecchia soluzione per postare foto non quadrate ... opacizzandole con il bianco.

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

Suggerisco di segnalare un bug, l'ho fatto;) – troppoli

Problemi correlati