很幸運地在網路上發現了相關的技術
參考 http://my.oschina.net/rareliu/blog/24322
1.等比率缩放
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize);
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
2.自定长宽
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize
{
UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
[image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
[image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return reSizeImage;
}
以下是我的使用方法
UILabel *r1_Label = [[UILabel alloc] initWithFrame:CGRectMake(20, 350, 60, 60)];
CGSize imgSize = r1_Label.frame.size;
r1_Label.backgroundColor = [UIColor colorWithPatternImage:[self reSizeImage:img toSize:imgSize]];
這樣就可以將圖片縮放到Label所要的大小了。理論上這也可以用到其他相關的UIView的元件上。
沒有留言:
張貼留言