画正方形image

    /**
     *  剪切图片为正方形
     *
     *  @param image   原始图片比如size大小为(400x200)pixels
     *  @param newSize 正方形的size比如400pixels
     *
     *  @return 返回正方形图片(400x400)pixels
     */
    - (UIImage *)squareImageFromImage:(UIImage *)image scaledToSize:(CGFloat)newSize {
        CGAffineTransform scaleTransform;
        CGPoint origin;  

        if (image.size.width > image.size.height) {
            //image原始高度为200,缩放image的高度为400pixels,所以缩放比率为2
            CGFloat scaleRatio = newSize / image.size.height;
            scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
            //设置绘制原始图片的画笔坐标为CGPoint(-100, 0)pixels
            origin = CGPointMake(-(image.size.width - image.size.height) / 2.0f, 0);
        } else {
            CGFloat scaleRatio = newSize / image.size.width;
            scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);  

            origin = CGPointMake(0, -(image.size.height - image.size.width) / 2.0f);
        }  

        CGSize size = CGSizeMake(newSize, newSize);
        //创建画板为(400x400)pixels
        if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
            UIGraphicsBeginImageContextWithOptions(size, YES, 0);
        } else {
            UIGraphicsBeginImageContext(size);
        }  

        CGContextRef context = UIGraphicsGetCurrentContext();
        //将image原始图片(400x200)pixels缩放为(800x400)pixels
        CGContextConcatCTM(context, scaleTransform);
        //origin也会从原始(-100, 0)缩放到(-200, 0)
        [image drawAtPoint:origin];  

        //获取缩放后剪切的image图片
        image = UIGraphicsGetImageFromCurrentImageContext();  

        UIGraphicsEndImageContext();  

        return image;
    }  
时间: 2024-07-31 13:42:20

画正方形image的相关文章

HTML5之Canvas画正方形

1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> <title>HTML5之Canvas画正方形</title> <script type="text/javascript"> function drawFour(id) { //获取canvas元素 var canvas = document.getElementById("

画正方形

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014年底,为庆祝"计算机科学教育周"正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形.现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格. 输出格式: 输出由给定字符C画出的正方形.但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五

for语句和if语句画正方形菱形

public static void main(String[] args) { int n =8; // 空心正方形 for(int i=0;i<=n;i++){ if(i==0||i==n){ for(int j=0;j<=n;j++){ System.out.print("* "); } } else{ for(int j=0;j<=n;j++){ if(j==0){ System.out.print("*"); } else if(j==n

正方形_找规律

问题 G: 正方形 时间限制: 1 Sec  内存限制: 64 MB提交: 22  解决: 16[提交][状态][讨论版] 题目描述 又到暑假啦,Conan, Ayumi, Mitsuhiko, Genta一起到Hakase家愉快玩耍(然而你却不行……). Ayumi, Mitsuhiko, Genta依次开始画正方形(显然Ai是不会参加这个活动的),一人一笔,画完一个,以上一个正方形四边中点为顶点接着画啊画啊画啊……最后一共画了k个正方形.最终他们想知道自己各画了多长. 输入 输入一行包含两个

用Python的Turtple画图形

不知道各位是否还记得在小学或者初中的时候,我们接触过一种语言叫做logo语言,这个语言可以画正方形,画三角形,画圆.而用Python画图形也有点类似logo语言的意思. 在画图之前,我们需要启动一个模块,turtple.然后在这个turtple下有一个属性叫pen,顾名思义就是画笔的意思.当输入完pen这个属性的时候,idle会打开一个叫Python Turtle Graphics的东西,在屏幕中间有一个三角的原点,这个点就有点类似logo的点,我们就是操作它来回移动留下痕迹.在idle里写完一

IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

转自:http://blog.csdn.net/zhibudefeng/article/details/8463268 [cpp] view plain copy // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { CGC

Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{    CGContextRef context = UIGraphicsGetCurrentContext();         /*NO.1画一条线     CGContex

【转】IOS Quartz 各种绘制图形用法-实现画图片、写文字、画线、椭圆、矩形、棱形等

// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{ CGContextRef context = UIGraphicsGetCurrentContext(); /*NO.1画一条线 CGContextSetRGBStrokeCo

12864 显示画圆多种图形

/*******************************************************************************************************/ //程序说明:本程序为12864(st7920)驱动程序,只实现了最简单的显示功能 /*****************************************************************************************************