1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//转换图片大小
- (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();
     
    return reSizeImage;
     
}
//规格化图片并转换为指定大小
- (UIImage *)squareImageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    double ratio;
    double delta;
    CGPoint offset;
     
    //make a new square size, that is the resized imaged width
    CGSize sz = CGSizeMake(newSize.width, newSize.width);
     
    //figure out if the picture is landscape or portrait, then
    //calculate scale factor and offset
    if (image.size.width > image.size.height) {
        ratio = newSize.width / image.size.width;
        delta = (ratio*image.size.width - ratio*image.size.height);
        offset = CGPointMake(delta/2, 0);
    } else {
        ratio = newSize.width / image.size.height;
        delta = (ratio*image.size.height - ratio*image.size.width);
        offset = CGPointMake(0, delta/2);
    }
     
    //make the final clipping rect based on the calculated values
    CGRect clipRect = CGRectMake(-offset.x, -offset.y,
                                 (ratio * image.size.width) + delta,
                                 (ratio * image.size.height) + delta);
     
     
    //start a new context, with scale factor 0.0 so retina displays get
    //high quality image
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions(sz, YES, 0.0);
    } else {
        UIGraphicsBeginImageContext(sz);
    }
    UIRectClip(clipRect);
    [image drawInRect:clipRect];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
     
    return newImage;
}

转载于:https://www.cnblogs.com/ranger-jlu/p/3877905.html

裁剪并获取固定大小的图片相关推荐

  1. python实现图片按比例缩放,以固定大小截取图片

    1.按比例缩放 import cv2 import osif __name__ == '__main__':img_load_path='./test/img/' #原图片路径img_save_pat ...

  2. python 将图片切割成固定大小的图片脚本

    将像素很大的图片切割成固定大小的多张图片,代码如下: import numpy as np import matplotlib import os from PIL import Imagedef i ...

  3. 固定大小显示图片html,JQuery加载图片自适应固定大小的DIV

    如何在固定大小的div中放置一个图片,当图片较小时显示实际大小,当图片超过div 大小时图片 自动适应div 的大小 jquery图片自适应大小实现过程的主要代码: 代码如下: .divImg{ ma ...

  4. html中怎么固定一张图片大小,固定大小的div,不固定大小的图片如何放入div?

    1 . css代码 .imgBox{ background-image: url(./shengdan.png); //图片路径 可写在标签的style当中 background-repeat: no ...

  5. php如何让图片铺满屏幕,如何解决js获取屏幕大小并且让图片自适应的方法

    在写h5页面的时候,经常会需要将图片自适应大小,一般都是用等比例的缩放,这就有个问题,当上传的图片不是一个规格时就会出现展示图片不完美. 为了解决这个问题,我们可以通过js去获取图片的大小,然后在根据 ...

  6. php自动适应屏幕大小,如何解决js获取屏幕大小并且让图片自适应的方法

    在写h5页面的时候,经常会需要将图片自适应大小,一般都是用等比例的缩放,这就有个问题,当上传的图片不是一个规格时就会出现展示图片不完美. 为了解决这个问题,我们可以通过js去获取图片的大小,然后在根据 ...

  7. 截取固定大小图片css,css-使不同大小的图片在固定大小的容器中居中

    HTML示例如下: 方法一: .imgbox{ position: relative; width: 240px; height: 240px; } .imgbox img{ position: ab ...

  8. golang后端动态生成图片、一文搞懂image/draw使用、一张图片粘贴到另一张图片上、根据url获取图片内容、在图片周围画线、invalidJPEGformat: missingSOImarke

    后端动态生成图片.在图片上写文字.将另一张图片贴到模板图片上.图片生成边框 最近做项目,遇到一个需求,在后端根据模板文件动态的生成图片然后返回给前端,原以为是一个很简单的需求,但在此过程中遇到了很多的 ...

  9. php如何把图片铺满,PHP如何裁剪图片成固定大小

    做一个首页调用图像,有时需要获得固定大小的图像,因为首页的图像位置通常由设计人员指定好了,如果是做最新发布图像调用,因为不知道客户会上传什么比例的图像,所以,有时候也就没有办法确定图像的比例,前台页面 ...

  10. php修改图片为指定大小,php裁剪图片为固定大小步骤详解

    这次给大家带来php裁剪图片为固定大小步骤详解,php裁剪图片为固定大小的注意事项有哪些,下面就是实战案例,一起来看一下. 做一个首页调用图像,有时需要获得固定大小的图像,因为首页的图像位置通常由设计 ...

最新文章

  1. 贾扬清:我对人工智能方向的一点浅见
  2. 如何打造企业的组织能力?战略决定组织,而组织决定成败!
  3. 【PC工具】Windows下用RaiDrive挂载各种网盘为本地硬盘,挂载Google Drive网盘为本地硬盘使用...
  4. Linux下查看文件内容的ASCII码以检查内容的编码一致
  5. jquery|javascript 回车事件
  6. 《Cortex-M0权威指南》之体系结构---栈空间操作
  7. Spring AspectJ简单测试代码
  8. php复制目录及文件
  9. Java之美[从菜鸟到高手演变]之Exception
  10. 拓端tecdat:R语言因子实验设计nlme拟合非线性混合模型分析有机农业施氮水平
  11. C# 实体映射,对象映射框架——Mapster
  12. 【JAVA】第十一届蓝桥杯省模拟赛答案(高职专科组)
  13. 《组合数学引论》第一章部分习题解答
  14. 计算机组成原理习题集
  15. vue面试题+答案,2021前端面试
  16. 人工智能——机器学习是什么
  17. ac6005直连ap 如何配置_邀请实测搭档 完成AC+瘦AP经典组网_华为 AC6005_网络设备-中关村在线...
  18. HTML5期末大作业:在线电影网站设计——我不是药神电影介绍(4页) HTML+CSS+JavaScript 大二实训大作业HTML源码
  19. nodejs npm 卸载 + 重新安装
  20. ~/.profile和/etc/profile的区别

热门文章

  1. 手机自动化测试:appium源码分析之bootstrap五 上
  2. NFS rhel 7
  3. php趣味编程 - php 余弦曲线
  4. hdoj1000解题报告
  5. [九度][何海涛] 数组中只出现一次的数字
  6. C语言实验六作业,C语言程序设计作业——实验六.doc
  7. mysql一对一关系_sql-MySQL-一对一关系?
  8. 来自一个从事单片机工作中遇到的真人真事,单片机从业者可以借鉴
  9. mongodb导入bson文件_分布式文档存储数据库之MongoDB备份与恢复
  10. 【渝粤教育】电大中专学前儿童社会教育 (2)作业 题库