Как я могу изменить размер моего UIImage? - PullRequest
0 голосов
/ 01 ноября 2011

Вот код, который я использую для изменения размера UIImage, но, к сожалению, он не работает:

UIImage *cellImage = [UIImage imageNamed:@"warning.png"];

CGRect cropRect = CGRectMake(0.0, 0.0, 12.0, 12.0);
CGImageRef croppedImage = CGImageCreateWithImageInRect([cellImage CGImage], cropRect);

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:cropRect];
[myImageView setImage:[UIImage imageWithCGImage:croppedImage]]; 

CGImageRelease(croppedImage);

Почему этот код не работает?

Спасибо

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

HI попробуйте это: -

       UIGraphicsBeginImageContext(CGSizeMake(50,50));
       [[UIImage imageNamed:@"warning.png"] drawInRect: CGRectMake(0, 0,50,50)];
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext(); 
0 голосов
/ 02 ноября 2011

Вы забыли добавить myImageView в качестве подпредставления вашего основного вида или другого видимого представления?Например,

[cell.contentView addSubview:myImageView];

Это объясняет, почему ничего не появляется.

Однако, CGImageCreateWithImageInRect() обрезает изображение внутри прямоугольника, если ваш прямоугольник меньше, чем изображение.Чтобы изменить размер самого UIImage, см .: Самый простой способ изменить размер UIImage?

Однако проще всего, если вы просто позволите UIImageView обрабатывать изменение размера, если вам на самом деле не нужен UIImageсам размер изменен.

UIImage *cellImage = [UIImage imageNamed:@"warning.png"];
CGRect cropRect = CGRectMake(0.0, 0.0, 12.0, 12.0);
CGImageRef croppedImage = CGImageCreateWithImageInRect([cellImage CGImage], CGRectMake(0.0f,0.0f,cellImage.size.width,cellImage.size.height));
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:cropRect];
[myImageView setImage:[UIImage imageWithCGImage:croppedImage]]; 
CGImageRelease(croppedImage);
[cell.contentView addSubview:myImageView];

См .:

0 голосов
/ 02 ноября 2011

Я не знаю, почему это не работает, но попробуйте вместо этого использовать UIGraphicsBeginImageContext и UIGraphicsEndImageContext, UIGraphicsBeginImageContext принимает размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...