当前位置: 首页 > 编程笔记 >

iOS中 UIImage根据屏宽调整size的实例代码

常雪风
2023-03-14
本文向大家介绍iOS中 UIImage根据屏宽调整size的实例代码,包括了iOS中 UIImage根据屏宽调整size的实例代码的使用技巧和注意事项,需要的朋友参考一下

需求:UIImage根据屏幕宽度按照自己本身比例改变高度

代码,为UIImage创建一个Category

#import "UIImage+UIImageExtras.h" 
@implementation UIImage (UIImageExtras) 
- (UIImage *)imageByScalingToSize:(CGSize)targetSize 
{ 
 UIImage *sourceImage = self; 
 UIImage *newImage = nil; 
 CGSize imageSize = sourceImage.size; 
 CGFloat width = imageSize.width; 
 CGFloat height = imageSize.height; 
 CGFloat targetWidth = targetSize.width; 
 CGFloat targetHeight = targetSize.height; 
 CGFloat scaleFactor = 0.0; 
 CGFloat scaledWidth = targetWidth; 
 CGFloat scaledHeight = targetHeight; 
 CGPoint thumbnailPoint = CGPointMake(0.0,0.0); 
 if (CGSizeEqualToSize(imageSize, targetSize) ==NO) { 
 CGFloat widthFactor = targetWidth / width; 
 CGFloat heightFactor = targetHeight / height; 
 if (widthFactor < heightFactor) 
  scaleFactor = widthFactor; 
 else 
  scaleFactor = heightFactor; 
 scaledWidth = width * scaleFactor; 
 scaledHeight = height * scaleFactor; 
 // center the image 
 if (widthFactor < heightFactor) { 
  
  thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; 
 } else if (widthFactor > heightFactor) { 
  thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; 
 } 
 } 
 // this is actually the interesting part: 
 UIGraphicsBeginImageContext(targetSize); 
 CGRect thumbnailRect = CGRectZero; 
 thumbnailRect.origin = thumbnailPoint; 
 thumbnailRect.size.width = scaledWidth; 
 thumbnailRect.size.height = scaledHeight; 
 [sourceImage drawInRect:thumbnailRect]; 
 newImage =UIGraphicsGetImageFromCurrentImageContext(); 
 UIGraphicsEndImageContext(); 
 if(newImage == nil) 
 NSLog(@"could not scale image"); 
 return newImage ; 
} 
@end 

在需要使用的地方import然后使用

CGSize size = image.size; 
image = [image imageByScalingToSize:CGSizeMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.width * (size.height / size.width))]; 
self.imageview.image = image; 

以上所述是小编给大家介绍的iOS UIImage根据屏宽调整size的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍iOS 中根据屏幕宽度自适应分布按钮的实例代码,包括了iOS 中根据屏幕宽度自适应分布按钮的实例代码的使用技巧和注意事项,需要的朋友参考一下  下载demo链接:https://github.com/MinLee6/buttonShow.git 屏幕摆放的控件有两种方式,一种根据具体内容变化,一种根据屏幕宽度变化。 下面我分别将两个方式,用代码的方式呈现: 1:根据具体内容变化 2:

  • 我正在寻找一种比断点更精确的解决方案。我知道这需要JavaScript,但我很难找到合适的插件。 我网站上的大多数文本将保持不变,或者我将通过媒体查询对其进行调整(比如平板电脑和手机的90%)。这很好,但我正在为我的导航菜单和横幅等领域寻找“实时”解决方案。 在此处查看站点 您可以使用基本字体大小为100%的ems查看我的所有文本的相对大小 如果你调整网站的大小,你会注意到菜单“崩溃”,因为字体太

  • 本文向大家介绍vue中实现拖动调整左右两侧div的宽度的示例代码,包括了vue中实现拖动调整左右两侧div的宽度的示例代码的使用技巧和注意事项,需要的朋友参考一下 写在最前 最近在使用vue的时候,遇到一个需求,实现左右div可通过中间部分拖拽调整宽度,类似于这样 这是我最终的实现效果 还是老话,因为我不是专业的前端工程师,只是兼职写一些简单的前端,所以这个功能的实现得益于以下博客,《vue 拖动

  • 本文向大家介绍React根据宽度自适应高度的示例代码,包括了React根据宽度自适应高度的示例代码的使用技巧和注意事项,需要的朋友参考一下 有时对于响应式布局,我们需要根据组件的宽度自适应高度。CSS无法实现这种动态变化,传统是用jQuery实现。 而在React中无需依赖于JQuery,实现相对比较简单,只要在DidMount后更改width即可 Try on Codepen 需要注意的是在re

  • 问题内容: 我一直在努力调整图像的大小。基本上,我很费解:如何缩小UIImage并同时使其酥脆/清晰而不是模糊? 这似乎是一个合法的解决方案,但是以某种方式无法正常工作。 我的应用程序可使用相机胶卷中的照片。这些照片应调整为200x200左右,而宽度很重要,而不是高度。 不幸的是,我没有示例代码,因为在无法解决问题的愤怒中我将其丢弃。 问题答案: 这是我的代码。图片的宽度为850像素,而不是200

  • 本文向大家介绍iOS中的缓存计算和清除完整实例代码,包括了iOS中的缓存计算和清除完整实例代码的使用技巧和注意事项,需要的朋友参考一下 1.首先,一般我们项目中的缓存一般分为2大块,一个是自己缓存的一些数据;还有一个就是我们使用的SDWebImage这个第三方库给我们自动缓存的图片文件缓存了 <1>怎么计算缓存大小(主要是利用系统提供的NSFileManager类来实现) $1.单个文件大小的计算