以编程方式将图像600x600调整为100x100

Chi*_* Dj 1 iphone objective-c

我有高度为600的图像,宽度也是600现在我想在UIImageView中用100x100以编程方式显示该图像.我尝试但是图像不像原始图像我添加图像的屏幕截图首先是100x100,第二个是200x200.第二个很好.但是第一个不像原始图像.知道我做什么请在此输入图像描述

in.h中

@interface ViewController : UIViewController
{
    IBOutlet UIImageView *imageView1;
    IBOutlet UIImageView *imageView2;
}
@end
Run Code Online (Sandbox Code Playgroud)

In.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    imageView1.frame=CGRectMake(100, 50, 100, 100);
    imageView2.frame=CGRectMake(50, 200, 200, 200);
    imageView1.image = [UIImage imageNamed:@"Untitled-7.png"];
    imageView2.image = [UIImage imageNamed:@"Untitled-7.png"];
}
Run Code Online (Sandbox Code Playgroud)

原始图像是600x600

小智 18

请试试这个

UIImage *originalImage = [UIImage imageNamed:@"5.png"];
        CGSize destinationSize = CGSizeMake(100, 100);
        UIGraphicsBeginImageContext(destinationSize);
        [originalImage drawInRect:CGRectMake(0,0,destinationSize.width,destinationSize.height)];
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageView *newImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)];
        newImageView.image = newImage;
        [self.view addSubview:newImageView];
Run Code Online (Sandbox Code Playgroud)


Rui*_*res 5

尝试 imageView1.contentMode = UIViewContentModeScaleAspectFit;


Bha*_*vin 5

使用此方法:

- (UIImage*)imageWithImage:(UIImage*)image
              scaledToSize:(CGSize)newSize;
{
    UIGraphicsBeginImageContext( newSize );
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
Run Code Online (Sandbox Code Playgroud)

调用方法:

CGSize newSize = CGSizeMake(100.0,100.0);
[self imageWithImage:image scaledToSize:newSize];
Run Code Online (Sandbox Code Playgroud)