2

UIImageViewサイズが で、(144,130)キャプチャ後に取得する画像サイズは です(720,960)

で画像のサイズを変更しました

UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

(144,130)sサイズなのでこちらが新しいサイズですimageview。画像が引き伸ばされているにもかかわらず。

画像が引き伸ばされないようにするには、何を変更すればよいですか?

編集-1

UIImage *imageCapture = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImage *finalImage = [self imageByScalingAndCroppingForSize:(imageview.frame.size)];

このリンクの答えに従って

編集-2

キャプチャされた画像のサイズ: {720, 960}

imageview.frame.size : {144, 130}

newSize : {97.5, 130}

ここに画像の説明を入力

4

2 に答える 2

2

サイズ変更では、アスペクト比を維持する必要があります。ビューのアスペクト比を実際の画像と一致させるだけで、引き伸ばされた画像はありません...

これはあなたに役立つかもしれません

于 2013-05-28T12:21:42.780 に答える
-1

Imageview プロパティを設定しました

imageView.contentMode=UIViewContentModeScaleAspectFit;

ペン先を使用している場合は、[ビュー] セクション -> [モード] -> [アスペクト フィット] で imageview プロパティを設定します。

画像のサイズを変更する必要はありません。それは私のために働いた。

画像のサイズを変更したい場合でも、UIImageカテゴリに次の画像を含めることができます

- (UIImage *) scaleProportionalToSize: (CGSize)size
{
    float widthRatio = size.width/self.size.width;
    float heightRatio = size.height/self.size.height;

    if(widthRatio > heightRatio)
    {
        size=CGSizeMake(self.size.width*heightRatio,self.size.height*heightRatio);
    } else {
        size=CGSizeMake(self.size.width*widthRatio,self.size.height*widthRatio);
    }

    return [self scaledToSize:size];
}

- (UIImage *)scaledToSize:(CGSize)newSize
{
    UIGraphicsBeginImageContext(newSize);
    [self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    //[newImage autorelease];
    return newImage;
}

画像のサイズを newSize に変更するときは、幅を 10% と仮定してサイズ変更する場合、高さを 10% だけサイズ変更する必要があることを考慮する必要があります。

于 2013-05-28T12:26:27.647 に答える