使用CoreImage过滤图像会导致图像旋转 [英] Using CoreImage to filter an image results in image rotation

查看:88
本文介绍了使用CoreImage过滤图像会导致图像旋转的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

感谢您阅读。

我正在尝试在iOS 5中使用CoreImage来改变图像的外观。问题是现有图像在此过程中似乎丢失了方向信息并最终旋转了90度。

I'm trying to use CoreImage in iOS 5 to alter the appearance of an image. The problem is that the existing image appears to lose its orientation information during the process and ends up rotated by 90 degrees.

以下是代码:

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *img = [CIImage imageWithCGImage:imageView.image.CGImage];
CIFilter *adjustFilter = [CIFilter filterWithName:@"CIHighlightShadowAdjust"];

[adjustFilter setDefaults];
[adjustFilter setValue:img forKey:kCIInputImageKey];
[adjustFilter setValue:[NSNumber numberWithFloat:0.3] forKey:@"inputShadowAmount"];
CIImage *adjustedImage = [adjustFilter valueForKey:kCIOutputImageKey];
UIImage *newPtImage = [UIImage imageWithCGImage:[context adjustedImage fromRect:adjustedImage.extent]];

imageView.image = newPtImage;

原始图像通常来自相机拍摄的图像,但并非总是如此。

The original image generally comes from one taken by the camera, but not always.

希望有人可以提供帮助。

Hope someone can help.

Rob。

推荐答案

看一下这个答案 https://stackoverflow.com/q/538064/871102

您可以解决将图像传递给上一个答案方法的问题。所以代替:

You can solve your problem passing the image to the method of the previous answer. So instead of:

CIImage *img = [CIImage imageWithCGImage:imageView.image.CGImage];

写:

UIImage *fixedImage = [self scaleAndRotateImage:imageView.image];
CIImage *img = [CIImage imageWithCGImage:fixedImage.CGImage];

更新:

这里有一个更优雅的答案,没有图像缩放: iOS UIImagePickerController结果图片上传后的方向

There is a more elegant answer without image scaling here: iOS UIImagePickerController result image orientation after upload.

这篇关于使用CoreImage过滤图像会导致图像旋转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆