iOS 解決圖片上傳後逆時針旋轉90度的問題
寫一個分類:
#import "UIImage+Orientation.h"
@implementation UIImage (Orientation)
+ (UIImage *)fixOrientation:(UIImage *)aImage {
// No-op if the orientation is already correct
if (aImage.imageOrientation ==UIImageOrientationUp)
return aImage;
// We need to calculate the proper transformation to make the image upright.
// We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.
CGAffineTransform transform =CGAffineTransformIdentity;
switch (aImage.imageOrientation) {
case UIImageOrientationDown:
case UIImageOrientationDownMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size .width, aImage.size.height);
transform = CGAffineTransformRotate(transform, M_PI);
break;
case UIImageOrientationLeft:
case UIImageOrientationLeftMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.width,0);
transform = CGAffineTransformRotate(transform, M_PI_2);
break ;
case UIImageOrientationRight:
case UIImageOrientationRightMirrored:
transform = CGAffineTransformTranslate(transform, 0, aImage.size.height);
transform = CGAffineTransformRotate(transform, -M_PI_2);
break;
default:
break;
}
switch (aImage.imageOrientation) {
case UIImageOrientationUpMirrored:
case UIImageOrientationDownMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.width,0);
transform = CGAffineTransformScale(transform, -1, 1);
break;
case UIImageOrientationLeftMirrored:
case UIImageOrientationRightMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.height,0);
transform = CGAffineTransformScale(transform, -1, 1);
break;
default:
break;
}
// Now we draw the underlying CGImage into a new context, applying the transform
// calculated above.
CGContextRef ctx =CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height,
CGImageGetBitsPerComponent(aImage.CGImage),0,
CGImageGetColorSpace(aImage.CGImage),
CGImageGetBitmapInfo(aImage.CGImage));
CGContextConcatCTM(ctx, transform);
switch (aImage.imageOrientation) {
case UIImageOrientationLeft:
case UIImageOrientationLeftMirrored:
case UIImageOrientationRight:
case UIImageOrientationRightMirrored:
// Grr...
CGContextDrawImage(ctx,CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);
break;
default:
CGContextDrawImage(ctx,CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.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;
}
@end
這個方法是在從相簿獲取照片的時候呼叫的,如果你把照片寫到沙盒中,這個方法就失效了。
相關推薦
iOS 解決圖片上傳後逆時針旋轉90度的問題
寫一個分類: #import "UIImage+Orientation.h" @implementation UIImage (Orientation) + (UIImage *)fixOrientation:(UIImage *)aImage {
layui 富文字 圖片上傳 後端PHP介面
layui 富文字 圖片上傳 後端PHP介面 html <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="/static/layui/
微信公眾號 IOS多圖片上傳只儲存一張
wx.chooseImage({ count:imgCount, needResult: 1, sizeType:['original', 'compressed'], sourceType:['album', 'camera'], success:function(res){ ShowOKbt(false
iOS多圖片上傳
開始學習Objc20多天了,最近在弄多檔案上傳,在網上找了些程式碼,只是單檔案的,折騰了兩天,終於改成多檔案上傳的了。 xcode 6.1 iOS 8.0測試成功 希望別的人不要像我一樣花時間在修改上。時間就是生命啊。。 +(NSString *)PostImagesToSe
tp5 圖片上傳後 按照當前控制器/年份/月份日期 新建檔案
按照要求的話 有兩種解決方法 1-當前控制器中的圖片上傳的方法 $info = $file->move(ROOT_PATH . 'public' . DS . 'upload' . DS .
[iOS]APP打包上傳後在構建版本中不顯示
最近經常遇到上傳完二進位制檔案後在構建版本中找不到的情況: 環境:Xcode 8.2 (8C38) 大致有幾種原因,可以按照以下步驟排查下。 排查步驟: 1.檢查使用的許可權,並info.plist檔案中新增許可權說明: 許可權
springmvc圖片上傳後壓縮處理
後臺程式碼: @RequestMapping(value = "/imageUpload", method = RequestMethod.POST) public @ResponseBody JsonResult imageUpload(HttpServletRequ
JSP使用ckfinder實現中文圖片上傳後,無法顯示,主要是tomcat不支援中文路徑
在前面實現的圖片上傳時,如果上傳的中文路徑圖片,則無法顯示; 主要原因tomcat伺服器預設 ISO-8859-1,不支援中文路徑,需要修改Tomcat\conf下的server.xml
Vue專案整合ueditor。解決圖片上傳及跨域問題
1:下載ueditor下來,放在vue專案中的static資料夾下2:建立ueditor編輯介面3:椰~~~~~此時已經可以使用了但是你會發現(黑人臉)what the fuck??????????看下面 如果你只是搞前端介面,那就到此結束不用往下看了,剩下的是給苦逼後
Umeditor結合Spring Restful解決圖片上傳跨域問題
專案中編輯器採用了Umeditor,但是由於跨域的問題,上傳圖片不能正常使用,本文解決了Spring應用的跨域問題,Spring的專案均可以參考。 專案背景 (任何不談背景的解決方案都是耍流) Umeditor+spring mvc restful,前
iOS AFNetworking 圖片上傳(修改使用者頭像功能)
今天在處理APP中使用者資訊這裡,遇到了上傳與使用者修改頭像的問題,在網上查閱一些資料之後完成了,寫了一下。貼上來供大家看看。 可以看到 在點選上部ImageView 的時候呼叫相簿去選擇某張圖片。 下面貼出點選圖片後代碼: #pragma mar
求原始矩陣逆時針旋轉90度後的矩陣(CCF)
package com.lck; import java.util.Scanner; public class Main3 { /* 問題1 問題描述 旋轉是影象處理的基本操作,在這個問題中,你需要將一個影象逆時針旋轉90度。 計算機中的影象表示可以用
強制橫屏 利用 CSS3 旋轉 對根容器逆時針旋轉 90 度
var detectOrient = function() { var width = document.documentElement.clientWidth, height = document.documentElement.clientHeight,
IOS上傳豎向圖片會旋轉90度的解決辦法
原因:iOS手機豎著拍出的照片被添加了一個順時針旋轉90°的拍照方向; 解決:讀取圖片的拍照方向資訊,糾正至正確的方向。 參考地址:http://code.ciaoca.com/javascript/exif-js/ 獲取圖片Orientation引數,=6是正
【圖片】移動端圖片上傳旋轉、壓縮的解決方案
dex adding .com pad 移動 side www shu add 移動端圖片上傳旋轉、壓縮的解決方案 來源 知乎 作者 林鑫 工作上有手機上傳準考證等圖片的功能,這個是非常必要的,作者寫的很全面,就直接記錄這個地址了 還有一篇 文件的上傳、下載
蘋果手機(ios)拍照上傳圖片旋轉90度問題---java後臺處理
需要先匯入包 metadata-extractor-2.3.1.jar 地址 https://github.com/drewnoakes/metadata-extractor/releases?after=2.7.0 xmpcore-5.1.2.jar 依賴包 maven下載 med
小程式圖片上傳用upng轉base64 圖片旋轉180度的問題 (ios)
最近業務需要:將圖片轉為base64格式。 so~~~;百度n多資料最後寫成,還是有一點小bug就是生成的圖片不太清晰; 文章最後還有程式碼的下載地址 參考資料: 微信小程式文件-wx.canvasGetImageData UPNG.js下載地址&nb
關於阿里雲oss上傳圖片之後會被旋轉90度的解決辦法
問題描述:正常的圖片前端上傳到oss成功之後的資源地址。在html上引用的時候被旋轉了90度oss資源地址直接在瀏覽器開啟就不會旋轉問題原因:某些手機拍攝出來的照片可能帶有旋轉引數(存放在照片exif資訊裡面)。而oss資源上傳之後會預設自適應方向所以在img標籤中圖片就被旋轉了90度。 解決辦法:阿里雲給
前端把圖片轉為base64,解決手機上傳圖片自動旋轉的問題
使用這個首先要下載exif.js。jsp頁面引用這個js,下載連結:https://link.jianshu.com?t=http://code.ciaoca.com/javascript/exif-js/jsp部分:上傳圖片:<input type="file" ac
iOS多張圖片上傳多執行緒處理方法(可獲取最後一張上傳狀態後的訊號)
環境重現 1,服務端提供單張上傳的介面。 2,客戶端需求同時提交多張圖片上傳。 3,使用AFNetWorking 或 自封裝的帶有block回撥網路狀態的框架。 思路 1,建立一個管理類。 2,提供一個單例方法。保證管理類唯一 3,提供一個公共