ios-剪裁图片导致图片向左旋转

问题描述

剪裁图片导致图片向左旋转
做了一个剪裁图片的程序,调用剪裁:

UIImage* croppedImage = [self imageCrop:imageView toRect:CGRectMake(10.0 50.0 320 100)];

方法:

{    //create a context to do our clipping in    CGRect newRect = CGRectApplyAffineTransform(rect imageViewToCrop.transform);    UIImage *imageToCrop = imageViewToCrop.image;    UIGraphicsBeginImageContext(newRect.size);    CGContextRef currentContext = UIGraphicsGetCurrentContext();    //create a rect with the size we want to crop the image to    //the X and Y here are zero so we start at the beginning of our    //newly created context    CGRect clippedRect = CGRectMake(0 0 rect.size.width rect.size.height);    CGContextClipToRect( currentContext clippedRect);    //draw the image to our clipped context using our offset rect    CGContextDrawImage(currentContext newRect imageToCrop.CGImage);    //pull the image from our cropped context    UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext();    //pop the context to get back to the default    UIGraphicsEndImageContext();    return cropped;}

设置图片到UIImageview的时候,图片向左旋转了。而且我也没办法让他向上旋转,怎么办?

解决方案

如楼上所说的可能是imageOrientation属性的问题。并且你也没有正确保存scale。这样创建剪裁的图片:

CGImageRef croppedRef = CGBitmapContextCreateImage(currentContext);UIImage* cropped = [UIImage imageWithCGImage:croppedRef scale:imageToCrop.scale orientation:imageToCrop.imageOrientation];CGImageRelease(croppedRef);

解决方案二:
UIImage有一个imageOrientation 属性,在某些情况下指示系统应该显示图片的方法,记录一下这个值。如果我猜的正确,应该调整剪裁算法,先创建一个CGImage,然后使用UIImage方法来进行方向参数的相关实现。

时间: 2024-09-24 13:29:08

ios-剪裁图片导致图片向左旋转的相关文章

uiimage-iphone中剪裁图片之后会旋转

问题描述 iphone中剪裁图片之后会旋转 在开发的应用程序中有一个功能是剪裁UIImage,但是我实现剪裁之后,最后的图片方向就会改变,图片旋转.这个问题是怎么回事?下面是我的剪裁代码: CGRect visibleRect;float scale = 1.0f/scrollView.zoomScale;visibleRect.origin.x = scrollView.contentOffset.x * scale;visibleRect.origin.y = scrollView.cont

如何左旋转字符串

题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abcXYZdef",要求输出循环左移3位后的结果,即"XYZdefabc".是不是很简单?OK,搞定它! 输入: 多组测试数据,每个测试数据包含一个字符序列S和非负整数K.其中S的长度不超过1000. 输出: 对应每个测试案例,输出新序列. 样例输入: UDBOJ 4 a

IOS中图片(UIImage)拉伸技巧

IOS中图片拉伸技巧与方法总结 一.了解几个图像拉伸的函数和方法 1.直接拉伸法 简单暴力,却是最最常用的方法,直接将图片设置为ImageView的image属性,图片便会随UIImageView对象的大小做自动拉伸.这种拉伸的方法有一个致命的缺陷,它会使图像发生失真与形变. 2.像素点的拉伸 - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHe

Word XP中的图片也能随意旋转

以前往Word中插入图片的时候,如果需要将图片旋转一定的角度,只能在别的软件中将图片先处理好 ,然后再插入到Word中.如果在Word中,能够像旋转自选图形那样,自由旋转图片就好了,也省却了处 理图片的功夫.一次偶然的机会,我发现了一个变通的办法,图片也能随意旋转了.您也试试? 首先在工具栏上点击右键,然后在弹出的快捷菜单中选择"自定义",打开"自定 义"对话框,点击其中的"命令"选项卡(如图1).在"类别"列表中选择 &qu

剑指Offer详解之左旋转字符串

(1)暴力移位法 这种方法可能是最直观,最容易想出的方法.但这也是最坏的方法.时间复杂度挺高,用这种方法容易超时. 这种方法是一位一位的移动实现左旋转操作. [代码] #include <stdio.h> #include <malloc.h> #include <string.h> char *str; char* Reverse(char* str,int n){ if(str == NULL || n < 0){ return ""; }

opencv-用c来实现bmp图片的双线性插值和旋转

问题描述 用c来实现bmp图片的双线性插值和旋转 用c来实现bmp图片的双线性插值和旋转,求大神解答啊,现在实在弄不出来,opencv也可以的 解决方案 双线性插值是最好实现的算法了至于旋转,需要先 把目标区域求出来实现方式是执果索因,从目标区域取一条线,此线中的的某个点映射到原图,求出 1)整数坐标,2 坐标误差(浮点坐标和整数坐标之差)用 x y 轴坐标的误差对图像颜色,做加权平均值.粗略地,可以用 3*3 矩阵,精确的就按比例算法,略微扩大使得浮点数化为整数就可以了.

ios tableview cell的自定义左滑按钮

问题描述 ios tableview cell的自定义左滑按钮 ios tableview cell的自定义左滑按钮是ios8之后才出现,那么在这之前使用什么方法实现的? 解决方案 这个应该能帮助你http://www.cocoachina.com/ios/20151118/14243.html

ios 查看图片前如何提前获取图片大小

问题描述 ios 查看图片前如何提前获取图片大小 固定区域大小,打开查看图片时,较大的图片就会变形,但是要怎么提前获取图片大小呢 解决方案 好像这是个略困扰的问题 解决方案二: www.cnblogs.com/cxjwin/p/3392101.html可能可以帮到你 解决方案三: 图片还有好几种格式,还要查看图片大小 解决方案四: 一种情况是请求图片的时候可以自己设置图片大小进行请求.另外一种就是返回的数据中包含图片的分辨率.其他情况我还没遇到 解决方案五: 一种情况是请求图片的时候可以自己设置

android-Android:图片显示的时候旋转了90度

问题描述 Android:图片显示的时候旋转了90度 Android:listView的Item中有一个ImageView,问题是上传图片到服务器,然后从服务器中取数据显示的时候,有的图片旋转了90度,但是在点击预览的时候,图片是正常的.哪位大神可以帮帮忙???指点一下 解决方案 android.graphics.Matrix的 setRotate方法来设置旋转角度 Matrix matrix = new Matrix(); Bitmap bitmap = ((BitmapDrawable) g