调整imagView和左栏按钮项目的图像大小
问题描述:
在我的项目中,我有“更改徽标”选项。 点击更改标志前的灰色标志,图库打开,用户从中选择一张照片。这是使用以下代码完成的:调整imagView和左栏按钮项目的图像大小
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *image = info[UIImagePickerControllerOriginalImage];
[imagePicker dismissViewControllerAnimated:YES completion:nil];
imgToBeSaved = image;
self.imgViewChooseLogo.contentMode = UIViewContentModeScaleAspectFit;
self.imgViewChooseLogo.image = image;
imageChanged = YES;
}
现在这张图片保存在文档目录中。由于此图像应作为所有视图控制器的标志。所以我必须把它设置为使用下面的代码左侧栏按钮项目:
NSData *imageData = [NSData dataWithContentsOfFile:[AppDelegate documentDirectoryWithFilePath]];
UIImage *image = [UIImage imageWithData:imageData];
UIImage *new = [AppDelegate imageWithImage:image scaledToSize:CGSizeMake(150, 40)];
UIImage *new1 = [new imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:new1 style:UIBarButtonItemStylePlain target:nil action:nil];
[self.navigationItem setLeftBarButtonItem:barButtonItem];
在其中方法scaledToSize竟把
+(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
我已经使用了150 * 40,使得我的默认标志完全吻合。问题来了,当我不得不使用从画廊选择一些其他图像。它延伸在酒吧按钮项目上。我不知道如何设置选择图库图像的高度和宽度的比例,以便图像不会在左侧的条形图项目上显示。
答
你应该让你的用户在使用之前裁剪图像。看看这些框架(如果你不想实现它自己:
+0
thanx为你的帮助bt不要你有任何其他出路。一些没有裁剪的方法。 – mars
如果你不想舒展你应该裁剪图像 - 右 –
BT?我怎么知道图像的哪个部分会被裁剪?我被要求调整图像的宽度和高度,以便从图库中选取的照片看起来不会扭曲 – mars
您应该让用户决定: D - 看我的回答 –