`

IOS图片等比缩放合成Demo代码

    博客分类:
  • IOS
阅读更多
//图片等比缩放合成并处于中心位置显示
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 {
    CGSize miSize = self.viewImage.frame.size;
    CGFloat miAspectRatio = miSize.width / miSize.height;
    CGFloat img2AspectRatio = image2.size.width / image2.size.height;

    UIGraphicsBeginImageContextWithOptions(miSize, NO, 0.0f);
    CGFloat w2 = miSize.width;
    if (img2AspectRatio < miAspectRatio) {
        w2 = miSize.width * (img2AspectRatio/miAspectRatio);
    }
    CGFloat h2 = w2 / img2AspectRatio;;
    CGFloat x2 = (miSize.width - w2)/2.0f;
    CGFloat y2 = (miSize.height - h2)/2.0f;
    [image2 drawInRect:CGRectMake(x2, y2, w2, h2)];
    
    CGFloat img1AspectRatio = (w2 / img2AspectRatio)/h2;
    CGFloat w1 = w2 * img1AspectRatio;
    if (img1AspectRatio < img2AspectRatio) {
        w1 = w2 * (img1AspectRatio/img2AspectRatio);
    }
    CGFloat h1 = h2 * img1AspectRatio;
    CGFloat x1 = (w2 - w1)/2.0f + x2;
    CGFloat y1 = (h2 - h1)/2.0f + y2;
    [image1 drawInRect:CGRectMake(x1, y1, w1, h1)];

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
//    NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];
//    [UIImagePNGRepresentation(resultingImage) writeToFile:path atomically:YES];
    return resultingImage;
}

 

分享到:
评论

相关推荐

    iOS图片旋转缩放demo

    这个“iOS图片旋转缩放demo”提供了一个实现这一功能的实例,可以帮助开发者更好地理解和应用这一技术。 首先,我们要理解的是Core Graphics和UIKit这两个框架在iOS中的角色。Core Graphics是一个低级的图形绘制库...

    iOS异步加载网络图片Demo代码

    一个iOS异步加载网络图片的Demo,用Objective-C写的,包含了三种加载网络图片的方式:同步、异步和Cache异步。界面布局全部代码手写,使用的是TableView布局。代码有注释,很简洁。欢迎大家下载使用。

    ios iphoto图片放大完整demo

    这个“ios iphoto图片放大完整demo”是针对iOS 5的一个示例项目,它展示了如何实现类似于`iPhoto`中双击放大、缩小图片的功能。下面我们将深入探讨这个知识点,包括核心的技术和实现步骤。 **1. 图片视图...

    ios抛物线缩放动画demo

    本项目"ios抛物线缩放动画demo"提供了一个基于CABasicAnimation、CAAnimationGroup和CAKeyframeAnimation实现的实例,展示了如何在Xcode 5.1.1环境下为iOS应用添加抛物线轨迹的缩放动画效果。下面将详细介绍这些关键...

    ios 多张图片合成Gif图片

    在iOS平台上,开发一款能够将多张静态图片合成为动态GIF图片的应用是一个常见的需求,尤其对于社交媒体分享、游戏动画或者个性化表情包制作等场景。本文将深入探讨如何实现这一功能,包括基本概念、所需技术及步骤。...

    iOS导航头像缩放Demo

    这个“iOS导航头像缩放Demo”就是一个实例,展示了如何实现这种效果。在本文中,我们将深入探讨相关的iOS开发知识点,包括导航栏自定义、滚动视图同步以及动画效果的实现。 1. **自定义导航栏...

    iOS9 通讯录新框架Demo

    在“Contact4iOS9”这个Demo项目中,你可以看到以上操作的具体实现,通过阅读代码,可以更好地理解如何在实际应用中集成和使用Contacts框架。同时,这个项目也展示了错误处理和用户体验优化的最佳实践,比如在权限...

    iOS 复选框小demo

    这个“iOS 复选框小demo”是一个基础的示例,展示了如何利用UIButton来实现类似的功能。下面我们将深入探讨这个主题。 首先,我们需要了解UIButton在iOS中的角色。UIButton是苹果提供的UI组件,它允许我们展示图像...

    iOS-网络图片加载demo

    "iOS-网络图片加载demo"项目提供了一个实现这一功能的示例,它具有图片占位符、异步加载和图片缓存等关键特性,非常适合在列表视图中使用。这个例子与流行的EGOImageView有些相似,但可能有其独特的实现方式和优化。...

    双指缩放图片,双击放大缩小图片DEMO

    这个DEMO的实现可能包含了这些核心代码,通过整合这两个手势,我们可以创建一个功能完善的图片查看器,让用户能够轻松地通过双指缩放和双击来控制图片的显示大小。这样的交互设计不仅提高了用户体验,也为开发者提供...

    iOS代码混淆的demo

    在iOS开发中,代码安全是至关重要的,尤其是在面临日益增加的逆向工程和黑客攻击时。本文将深入探讨iOS代码混淆技术,这是提高应用程序安全性的关键手段之一。代码混淆能够使原始代码变得难以理解,从而降低被恶意...

    ios手势代码demo大全

    ios 手势代码 demo 大全 ios手势代码demo大全

    IOS 静态依赖库代码实例Demo

    本示例“IOS 静态依赖库代码实例Demo”旨在演示如何在Xcode的workSpace环境中创建、使用和管理静态库。 首先,我们需要理解什么是静态库。静态库在编译时会被链接到目标应用程序中,成为应用程序的一部分。这意味着...

    ios视频和音频的合成

    在iOS平台上,开发人员经常需要处理音视频合成的任务,以便为用户提供丰富的多媒体体验。这篇博客“ios视频和音频的合成”可能提供了实现这一目标的方法和工具。虽然具体的代码没有直接提供,但我们可以根据标签...

    10个iOS开发的小demo

    整理一下【7年前的咯】 10个日常应用开发的小demo 放大镜 自定义弹框空间 动态视图开门 cell数据库的添加 仿试衣间效果滑动 缓存能默认过期时间 coco2d小游戏 airplay手机之间的传输等。 自己觉得可以就下载。

    iOS图片浏览器Demo

    这个"iOS图片浏览器Demo"是基于Objective-C(OC)语言编写的,展示了如何实现一个自定义的图片浏览功能。作为一个自学iOS开发的学习资源,这个Demo可以帮助开发者深入理解UI设计和图片处理的相关技术。 1. **图片...

    opencvDemo.zip_iOS opencv_iOS opencv_ios opencvdemo_openCV ios_

    对于"opencvDemo"中的示例代码,开发者可以学习如何初始化OpenCV,如何加载和显示图片,以及如何应用人脸检测和边缘检测算法。这些示例代码通常包含关键的函数调用,如`cv::CascadeClassifier::detectMultiScale`...

    ios 操作通讯录联系人demo大全

    ios 操作通讯录联系人demo大全

    iOS 简单的弹幕demo

    这个"iOS简单的弹幕demo"是一个示例项目,旨在帮助开发者了解如何在iOS应用中实现弹幕效果。下面将详细介绍这个demo中的关键知识点和实现步骤。 首先,我们需要理解弹幕的基本概念。弹幕(Danmaku)起源于日本的...

    ios拍照后按范围裁剪图片demo

    在iOS开发中,实现“ios拍照后按范围裁剪图片demo”涉及到多个关键知识点,主要集中在用户界面(UI)设计、图像处理以及照片权限管理。下面将详细解释这些技术要点。 首先,我们要创建一个自定义的拍照页面。这通常...

Global site tag (gtag.js) - Google Analytics