上传图片方向不对 php,上传PHP后修复iOS图片方向

图像正在旋转,因为您将图像保存为JPEG,如果您将图像保存在PNG中,则方向不会改变.这里是解决方向问题的代码.

- (UIImage *)fixrotation:(UIImage *)image{

if (image.imageOrientation == UIImageOrientationUp) return image;

CGAffineTransform transform = CGAffineTransformIdentity;

switch (image.imageOrientation) {

case UIImageOrientationDown:

case UIImageOrientationDownMirrored:

transform = CGAffineTransformTranslate(transform, image.size.width, image.size.height);

transform = CGAffineTransformRotate(transform, M_PI);

break;

case UIImageOrientationLeft:

case UIImageOrientationLeftMirrored:

transform = CGAffineTransformTranslate(transform, image.size.width, 0);

transform = CGAffineTransformRotate(transform, M_PI_2);

break;

case UIImageOrientationRight:

case UIImageOrientationRightMirrored:

transform = CGAffineTransformTranslate(transform, 0, image.size.height);

transform = CGAffineTransformRotate(transform, -M_PI_2);

break;

case UIImageOrientationUp:

case UIImageOrientationUpMirrored:

break;

}

switch (image.imageOrientation) {

case UIImageOrientationUpMirrored:

case UIImageOrientationDownMirrored:

transform = CGAffineTransformTranslate(transform, image.size.width, 0);

transform = CGAffineTransformScale(transform, -1, 1);

break;

case UIImageOrientationLeftMirrored:

case UIImageOrientationRightMirrored:

transform = CGAffineTransformTranslate(transform, image.size.height, 0);

transform = CGAffineTransformScale(transform, -1, 1);

break;

case UIImageOrientationUp:

case UIImageOrientationDown:

case UIImageOrientationLeft:

case UIImageOrientationRight:

break;

}

// Now we draw the underlying CGImage into a new context, applying the transform

// calculated above.

CGContextRef ctx = CGBitmapContextCreate(NULL, image.size.width, image.size.height,

CGImageGetBitsPerComponent(image.CGImage), 0,

CGImageGetColorSpace(image.CGImage),

CGImageGetBitmapInfo(image.CGImage));

CGContextConcatCTM(ctx, transform);

switch (image.imageOrientation) {

case UIImageOrientationLeft:

case UIImageOrientationLeftMirrored:

case UIImageOrientationRight:

case UIImageOrientationRightMirrored:

// Grr...

CGContextDrawImage(ctx, CGRectMake(0,0,image.size.height,image.size.width), image.CGImage);

break;

default:

CGContextDrawImage(ctx, CGRectMake(0,0,image.size.width,image.size.height), image.CGImage);

break;

}

// And now we just create a new UIImage from the drawing context

CGImageRef cgimg = CGBitmapContextCreateImage(ctx);

UIImage *img = [UIImage imageWithCGImage:cgimg];

CGContextRelease(ctx);

CGImageRelease(cgimg);

return img;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值