我将照片上传到 Facebook。如果照片宽度 > 高度,一切正常。但是如果高度 > 宽度,facebook 会显示照片,所以在 facebook 帐户照片中会出现宽度 > 高度,但是(当然)方向是错误的。我的代码:
- (void)postImageToFaceBook:(UIImage *)imgSource
{
[self login];
currentAPICall = kAPIGraphUserPhotosPost;
NSString *strMessage = @"This is the photo caption";
NSMutableDictionary* photosParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
imgSource,@"source",
strMessage,@"message",
nil];
NSLog(@"Begin sending photo\n\n");
[_facebook requestWithGraphPath:@"me/photos"
andParams:photosParams
andHttpMethod:@"POST"
andDelegate:self];
}
- (void)login
{
if (![_facebook isSessionValid]) {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_photos",
nil];
[_facebook authorize:permissions];
[permissions release];
}
}
- (void)logout
{
[_facebook logout];
}
#pragma mark - FBRequestDelegate
- (void)request:(FBRequest *)request didLoad:(id)result {
NSLog(@"Request load\n\n");
[self hideHud];
if ([result isKindOfClass:[NSArray class]] && ([result count] > 0)) {
result = [result objectAtIndex:0];
}
switch (currentAPICall) {
case kAPIGraphPhotoData: // step 3
{
NSLog(@"sending to wall\n\n");
// Facebook doesn't allow linking to images on fbcdn.net. So for now use default thumb stored on Picasa
NSString *thumbURL = kDefaultThumbURL;
NSString *imageLink = [NSString stringWithFormat:[result objectForKey:@"link"]];
currentAPICall = kDialogFeedUser;
NSMutableDictionary* dialogParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"app_id",
imageLink, @"link",
thumbURL, @"picture",
@"Photo from my iPhone application", @"name",
@"The app", @"caption",
@"it is fun to use", @"description",
nil];
[_facebook dialog:@"feed"
andParams:dialogParams
andDelegate:self];
break;
}
case kAPIGraphUserPhotosPost: // step 2
{
NSLog(@"getting data\n\n");
[self showHudWithMessage:@"Getting image data"];
NSString *imageID = [NSString stringWithFormat:[result objectForKey:@"id"]];
NSLog(@"id of uploaded screen image %@",imageID);
currentAPICall = kAPIGraphPhotoData;
[_facebook requestWithGraphPath:imageID
andDelegate:self];
break;
}
default:
break;
}
}
#pragma mark - FBDialogDelegate
- (void)dialogDidComplete:(FBDialog *)dialog {
switch (currentAPICall) {
case kDialogFeedUser:
{
NSLog(@"Feed published successfully.");
}
break;
default:
break;
}
}
在 postImageToFaceBook 中,我检查了图像大小以完全确保我的图像宽度 < 高度。宽度约为 2200,高度为 3300,facebook 相册图像出现宽度 > 高度。
先感谢您!