IOS 截取图片 部分 并生成新图片

/**
 *  从图片中按指定的位置大小截取图片的一部分
 *
 *  @param image UIImage image 原始的图片
 *  @param rect  CGRect rect 要截取的区域
 *
 *  @return UIImage
 */
+ (UIImage *)ct_imageFromImage:(UIImage *)image inRect:(CGRect)rect{

    //把像 素rect 转化为 点rect(如无转化则按原图像素取部分图片)
    CGFloat scale = [UIScreen mainScreen].scale;
    CGFloat x= rect.origin.x*scale,y=rect.origin.y*scale,w=rect.size.width*scale,h=rect.size.height*scale;
    CGRect dianRect = CGRectMake(x, y, w, h);

    //截取部分图片并生成新图片
    CGImageRef sourceImageRef = [image CGImage];
    CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, dianRect);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
    return newImage;
}

注:

ios可以自动识别@2x 和@3x的图片,以适应在不同屏幕上显示的图片大小一致,

这里截取的图片是按像素在原图上截取,原图大小和屏幕上显示的大小未必一致,

所以要进行相应的转化,缩放比就是[UIScreen mainScreen].scale,不同屏幕的scale是不同的

时间: 2024-10-06 18:15:09

IOS 截取图片 部分 并生成新图片的相关文章

压缩图片操作和生成圆形图片

1.对本地相册库或相机拍摄下来的图片进行压缩处理,传进来的参数分别有:要压缩的图片和压缩后的大小. //压缩图片 + (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize { // Create a graphics image context UIGraphicsBeginImageContext(newSize); // Tell the old image to draw in this ne

图片操作,生成一个图片

知识点: 1.先创建一个Image,再创建一个Graphic 问题: 生成一个图片 解决方案 1 <%@ WebHandler Language="C#" Class="writeAPic" %> 2 3 using System; 4 using System.Web; 5 using System.Drawing; 6 7 public class writeAPic : IHttpHandler { 8 9 public void ProcessR

java根据图片和文字生成自定义图片

import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import com.sun.i

Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图

现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大.用户上传的图片,一般是无法直接使用的.一般要生成两三 种对应的缩略图,分别适配不同的终端,不同的场景.比如PC,手机,平板等等不同的终端:在比如图片列表和图片详情,肯定一个要使用缩略图,一个要使用高 清图. 一般图片优化的第一步,就是在适当的地方使用缩略图,尽量不要在web端使用CSS缩放高清原始图片.下面分析了Java中如何生成不同的缩略图的技术. 常见的图片格式有: ".*\\.(?i)(jpg|jpeg|

Django随机生成验证码图片

PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 首先需要安装一下pillow包 ? 1 pip install pillow 然后就可以调用PIL里的类了 ? 1 2 3 4 from PIL import Image from PIL import ImageFont from PIL import ImageDraw from PIL im

java 合并图片:将多个图片竖向合并在一起

代码: /** * 将宽度相同的图片,竖向追加在一起 ##注意:宽度必须相同 * * @param piclist * 文件路径列表 * @param outPath * 输出路径 */ public static void yPic(List<String> piclist, String outPath) {// 纵向处理图片 if (piclist == null || piclist.size() <= 0) { System.out.println("图片数组为空!&

java向图片上写字,两个图片合并的方法

package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; public class pic { pri

javaweb学习总结(九)—— 通过Servlet生成验证码图片

一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.response.study; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 import java.awt.Graphics2D; 6 import java.awt.image.Buff

转: 通过Servlet生成验证码图片

孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)—— 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.response.study; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5