0

我将照片上传到 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 相册图像出现宽度 > 高度。

先感谢您!

4

2 回答 2

0

实际上 facebook 在 Image 上没有做任何事情。iPhone 在纵向模式下显示所有图像,它是在横向模式下。所以请检查您系统上的图像。

谢谢

于 2012-06-20T06:42:57.867 回答
0

我解决了这个问题。这种行为是图像的宽度约为 2000 像素,但如果宽度小于 1000 像素,则一切正常。

于 2012-06-20T09:47:06.867 回答