-1

高解像度の画像を含む UIImageView を作成しました。問題は、その画像の解像度が高すぎて imageView に入れられないことです。imageView のサイズは 92 x 91 です (小さいため)。解像度が高すぎるため、UIImageView で見苦しく見える UIImage が含まれています。では、どうすればその UIImage の解像度を下げることができますか?

UIImageView の私のコード:

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:pngFilePath]];
    myImageView.frame = CGRectMake(212.0, 27, 92,91);
4

4 に答える 4

2

これを見てください

https://stackoverflow.com/a/2658801

これにより、必要に応じて画像のサイズを変更できます

コードにメソッドを追加し、このように呼び出します

UIImage *myImage =[UIImage imageWithContentsOfFile:pngFilePath];
UIImage *newImage =[UIImage imageWithImage:myImage scaledToSize:CGSizeMake(92,91)];
于 2013-05-25T12:39:01.040 に答える
1

サイズ変更された画像を返すこのメソッドを使用して、画像のサイズを変更できます。

 -(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    // Here pass new size you need
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

お役に立てば幸いです。

于 2013-05-25T12:43:19.837 に答える
0

画像を縮小する必要があります。これにより、解像度が低下し、保存が容易になります。私は実際にそれを行うクラス(SOのいくつかのものに基づいて構築)を作成しました。それは私のgithubにあります。見てください:

https://github.com/pavlovonline/UIImageResizer

主な方法は

-(UIImage*)resizeImage:(UIImage*)image toSize:(CGFloat)size

そのため、このメソッドに画像を縮小したいサイズを指定します。高さが幅よりも大きい場合、中央が自動計算され、完全に中央に配置された正方形が得られます。幅が高さよりも大きい場合も同様です。正方形でない画像が必要な場合は、独自の調整を行ってください。

そのため、縮小された UIImage が返され、UIImageView に入れることができます。メモリも節約してください。

于 2013-05-25T12:14:47.343 に答える
0

これで試してください

     myImageView.contentMode = UIViewContentModeScaleToFill;
于 2013-05-25T12:08:33.360 に答える