0

以下のコードがあります。まず、テーブルの詳細ビューで、画像をキャプチャまたはロードします (画像のサイズは画面の約 1/4 です)。次に、画像を保存した後、UITableView に表示されます。これまでのところ、すべてがうまくいっているようです。ただし、UITable を押して詳細ページを再度読み込もうとすると、画像の解像度が低下します。TableViewのものと同じサイズだと思います。この問題を解決するにはどうすればよいですか?

ありがとう。

    -(void) ViewDidLoad{
       if ([currentPicture smallPicture])
                [imageField setImage:[UIImage imageWithData:[currentPicture smallPicture]]];
    }

- (IBAction)editSaveButtonPressed:(id)sender
            {

            // If we are adding a new picture (because we didnt pass one from the table) then create an entry
                if (!currentPicture)
                    self.currentPicture = (Pictures *)[NSEntityDescription insertNewObjectForEntityForName:@"Pictures" inManagedObjectContext:self.managedObjectContext];

        if (imageField.image)
        // Resize and save a smaller version for the table
                    float resize = 74.0;
                    float actualWidth = imageField.image.size.width;
                    float actualHeight = imageField.image.size.height;
                    float divBy, newWidth, newHeight;
                    if (actualWidth > actualHeight) {
                        divBy = (actualWidth / resize);
                        newWidth = resize;
                        newHeight = (actualHeight / divBy);
                    } else {
                        divBy = (actualHeight / resize);
                        newWidth = (actualWidth / divBy);
                        newHeight = resize;
                    }
                    CGRect rect = CGRectMake(0.0, 0.0, newWidth, newHeight);
                    UIGraphicsBeginImageContext(rect.size);
                    [imageField.image drawInRect:rect];
                    UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext();
                    UIGraphicsEndImageContext();

                    // Save the small image version
                    NSData *smallImageData = UIImageJPEGRepresentation(smallImage, 1.0);
                    [self.currentPicture setSmallPicture:smallImageData];
                }
4

2 に答える 2

2

[ここにリンクの説明を入力][1]この行を変更します(NSData *smallImageData = UIImageJPEGRepresentation(smallImage, 1.0); )次の行で..

NSData *smallImageData = UIImageJPEGRepresentation(smallImage, 0.0);

また

NSData *smallImageData = UIImagePNGRepresentation(smallImage);

ホープ、これはあなたを助ける..

于 2012-04-23T04:42:27.867 に答える
0

(^。^)「こんにちは、私の英語は良くありません。誰かが私の編集を訂正してくれたら、これをいただければ幸いです。」

1つのUIImageViewとそのプロパティcontentModeを試してみましたか?このような:

UIImageView *imagen = [[UIImageView alloc] initWithFrame:CGRectMake(X, Y, W, H)];
[imagen setContentMode:UIViewContentModeScaleAspectFit];
于 2012-04-23T04:17:44.667 に答える