`
jsntghf
  • 浏览: 2511440 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

图片裁剪

    博客分类:
  • iOS
阅读更多

UIImage+Crop.h

 

#import <UIKit/UIKit.h>

@interface UIImage (Crop)

- (UIImage *)imageByScalingAndCroppingForSize:(CGSize)targetSize;

@end

 

UIImage+Crop.m

 

#import "UIImage+Crop.h"

@implementation UIImage (Crop)

- (UIImage *)imageByScalingAndCroppingForSize:(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 = heightFactor; 
        else
            scaleFactor = widthFactor;
        
        scaledWidth = width * scaleFactor;
        scaledHeight = height * scaleFactor;
        
        if (widthFactor > heightFactor) {
            thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
        } else if (widthFactor < heightFactor) {
            thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
        }
    } 
    
    CGSize target_size = CGSizeMake(scaledWidth, scaledHeight);
    UIGraphicsBeginImageContext(target_size); 
    CGRect thumbnailRect = CGRectZero;
    thumbnailRect.origin = thumbnailPoint;
    thumbnailRect.size.width = scaledWidth;
    thumbnailRect.size.height = scaledHeight;    
    [sourceImage drawInRect:thumbnailRect];
    
    newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImage;
}

@end
分享到:
评论

相关推荐

    基于jquery的图片裁剪插件

    【jQuery图片裁剪插件详解】 在Web开发中,用户经常需要上传并编辑图片,例如在个人资料设置、产品发布或社交媒体应用中。基于jQuery的图片裁剪插件为此提供了便利,它允许用户在浏览器中预览并裁剪图片,然后以所...

    C#winform图片裁剪

    在本文中,我们将深入探讨如何使用C# WinForm来实现一个简单而实用的图片裁剪功能。C#是一种面向对象的编程语言,广泛应用于Windows桌面应用程序开发,而WinForm是.NET Framework提供的一种用户界面(UI)框架。我们...

    Flutter自定义控件之图片裁剪框

    在本文中,我们将深入探讨如何在Flutter框架中创建一个自定义控件,专注于实现图片裁剪功能。Flutter作为Google推出的跨平台开发工具,以其丰富的Widget库和高效的开发体验深受开发者喜爱。然而,尽管Flutter提供了...

    bootstrap+cropper图片裁剪代码

    Bootstrap 和 Cropper.js 是两个在前端开发中广泛使用的工具,它们结合使用可以实现高效、美观的图片裁剪功能。在H5(HTML5)应用中,这种功能常常用于头像上传、图片预览和编辑等场景。下面我们将深入探讨这两个库...

    Android图片裁剪----移动、缩放图片进行裁剪

    在Android开发中,图片裁剪是一项常见的功能,广泛应用于各种应用程序,如社交应用中的头像设置、拍照应用的编辑功能等。本知识点将详细介绍如何在Android中实现图片的移动和缩放裁剪。 首先,我们需要了解Android...

    jQuery图片裁剪插件 功能非常强大

    上次我们介绍过一款基于HTML5的图片马赛克效果,今天我们要来介绍一款基于jQuery的图片裁剪插件,这款jQuery图片裁剪插件可以选择裁剪框的尺寸比例,可以设置高宽尺寸,同时可以设置图片翻转角度,当然也支持图片的...

    jquery_图片裁剪

    在IT行业中,jQuery图片裁剪是一项常见的前端技术,主要用于网页上的图像处理,让用户可以自定义裁剪区域,以便上传或编辑图片。以下是对这个主题的详细讲解。 标题"jquery_图片裁剪"指的是使用jQuery库实现的图片...

    C# winForm 图片裁剪代码(用户控件)

    在C# WinForm开发中,图像处理是一项常见的需求,尤其是图片裁剪功能,它能够帮助用户根据需要选取图像的一部分进行保存或编辑。本资源提供的就是一个实现了这一功能的用户控件,名为"C# winForm 图片裁剪代码",...

    uni-app的图片裁剪nice-cropper.rar

    本资源“uni-app的图片裁剪nice-cropper.rar”聚焦于uni-app的一个重要应用场景:图片裁剪。在移动应用或Web应用中,用户可能需要上传或编辑图片,此时图片裁剪功能就显得尤为关键。 “nice-cropper”是针对uni-app...

    asp图片裁剪系统

    在ASP图片裁剪系统中,服务器端的ASP负责接收用户的请求,处理图片裁剪逻辑,如读取上传的图片、计算裁剪参数、保存裁剪结果等。 2. JavaScript:作为客户端脚本语言,JavaScript在用户浏览器上运行,提供用户界面...

    微信小程序 图片裁剪功能 (完整源码)

    微信小程序源码,完整实现图片裁剪功能。 可以自由拖动裁剪框和手动调整裁剪尺寸,实时显示裁剪尺寸大小,准确完成图片裁剪功能,并且能够恢复原始图片,不会丢失原图。 提供完整源码,能够直接在小程序里正常运行,...

    安卓图片裁剪后上传

    在安卓应用开发中,"安卓图片裁剪后上传"是一个常见的功能需求,尤其在社交类应用中,如模仿微信朋友圈的分享功能。这个功能让用户能够选择一张图片,对其进行裁剪,然后将裁剪后的图片上传到服务器。在本文中,我们...

    简单易用的vue图片裁剪插件,支持移动图像,裁剪图片,放大缩小图片,上下左右移动,固定比例,固定尺寸,远程图片裁剪

    在这个场景中,我们关注的是一个针对Vue.js设计的图片裁剪插件。这个插件被称为"vue-img-cutter",它提供了一种简单易用的方式来处理图片裁剪,适用于各种Web应用的需求。 1. **插件特性**: - **移动图像**:用户...

    Taro框架下的跨端图片裁剪组件.zip

    本次我们关注的是一个基于Taro框架实现的跨端图片裁剪组件,这个组件能够帮助开发者在这些不同平台上实现一致的图片裁剪功能。 首先,让我们深入了解Taro框架。Taro 是一个开源的多端开发框架,由京东云维护。它的...

    android图片裁剪上传头像

    本文将深入探讨如何实现“android图片裁剪上传头像”的功能,包括图片裁剪工具的选择、实现原理以及上传过程。 首先,我们要解决的是图片裁剪问题。在描述中提到的“这是我找到的最好的图片裁剪工具”,很可能是...

    用c#实现的图片裁剪并保存

    本项目“用c#实现的图片裁剪并保存”聚焦于这一领域,通过扫描指定文件夹中的图片,对不符合尺寸要求的图片进行裁剪和缩放,并将处理后的图片覆盖原有的文件。以下是对这一技术实现的详细解析: 首先,我们需要引入...

    asp.net图片裁剪

    ASP.NET 图片裁剪技术是Web开发中一种实用的功能,常用于网站的用户头像上传、产品图片展示等场景,允许用户或系统根据需求调整图片的尺寸和比例。本示例提供了一个详细的代码实现,非常适合开发者学习和借鉴。 在...

    js实现简单的图片裁剪

    "web.config"和"web.sln"等文件可能是ASP.NET项目配置和解决方案文件,与前端的JavaScript实现图片裁剪功能关系不大,但它们可能用于构建服务器端的接口,用于接收裁剪后的图片数据。 7. 其他资源: "from.gif...

    原生js+canvas实现图片裁剪

    图片裁剪的核心在于两个主要步骤:图片加载和绘制到canvas以及使用`clip()`方法定义裁剪区域。 1. 图片加载和绘制: 首先,创建一个`Image`对象并设置其`src`属性为要裁剪的图片URL。当图片加载完成后,使用`...

    微信小程序图片裁剪 we-cropper使用

    微信小程序 图片裁剪 upload 为裁剪page页面 we-cropper 为 官方库 使用: wx.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['album', 'camera'], success: function(res) { const src =...

Global site tag (gtag.js) - Google Analytics