iOS自定義相機拍身份證照片裁剪圖片截出身份證大小

最近在做一個項目扫责,有身份證照片的需求吃谣,然后領(lǐng)導(dǎo)說要在相機上加一個橘色邊框,然后加個提示框鲫惶,提示用戶“嘗試將身份證置于邊框”進行拍照蜈首。類似下面這種邊框

3161EAC403787DDF06329B97A6F9D30E.png

然后我就咔咔咔一頓代碼,做成了下面這種欠母,看著還可以

IMG_2651.PNG

然后給領(lǐng)導(dǎo)演示了一邊欢策,領(lǐng)導(dǎo)又發(fā)話了,照片展示的時候只要中間這塊身份證就好了赏淌,其他的截掉踩寇,然后就開始坑了,中間有很多mmp不知當(dāng)講不當(dāng)講(是在裁剪的時候遇到坑)六水。

下面開始講代碼部分:

自定義相機部分 AVCaptureDevice 類俺孙、 AVCaptureDeviceInput 類、AVCaptureSession類可以查到相關(guān)用法掷贾。

最主要講裁剪部分

#pragma mark - 選擇照片 返回上級
- (void)selectImage{
    
    //self.image是拍照所得的照片
    UIImage *image1 = self.image;
    
    CGImageRef cgRef = image1.CGImage;
    
    //實際照片大小與屏幕大小之比
    CGFloat widthScale = image1.size.width / ScreenWidth;
    CGFloat heightScale = image1.size.height / ScreenHeight;
    
    //我們所拍照片其實是橫屏的
    //多減掉50是因為最后的效果圖片的高度有偏差睛榄,不知道原因
    CGFloat orignWidth = 226-50;//226
    CGFloat orginHeight = 360;//360
    
    //我們要裁剪出實際邊框內(nèi)的圖片,但是實際的照片我們看見的屏幕上的圖片想帅,size是不一樣场靴,可以打印一下照片的size看看起碼好幾千的像素,要不然手機拍的照片怎么都是好幾兆的呢港准?
    //以下需要裁剪出的rect是相對于實際照片的rect旨剥,所以要進行 比例算法
    //看下面那張圖,所以呢叉趣,我們計算x的時候要用屏幕的高度來計算泞边,計算y的時候要用屏幕的寬來計算。有興趣的可以試著反過來計算測試一下疗杉,截出的圖是怎么樣的阵谚。
    CGFloat x = (ScreenHeight - orginHeight) * 0.5 * heightScale;
    CGFloat y = (ScreenWidth - orignWidth) * 0.5 * widthScale;
    CGFloat width = orginHeight * heightScale;
    CGFloat height = orignWidth * widthScale;
    
    CGRect r = CGRectMake(x, y, width, height);
    
    CGImageRef imageRef = CGImageCreateWithImageInRect(cgRef, r);
    
    UIImage *thumbScale = [UIImage imageWithCGImage:imageRef];
    //
    image1 = thumbScale;
    
    self.image = image1;
    
    //返回的時候把圖片傳回去
    self.imageblock(self.image);
    
    [self dismissViewControllerAnimated:YES completion:nil];
    
}
屏幕快照 2017-11-09 下午4.21.09.png

最后就是結(jié)果的呈現(xiàn)蚕礼,可以看一下

拍照的時候這么大

IMG_2653.JPG

截出的圖這么小

IMG_2652.JPG

我想之所以截出的圖還是帶有一點點的桌子的木頭色,是因為(x,y)都是按照橘色邊框的尖尖角開始算的梢什,畢竟那確實是邊框的(x,y)的起始點奠蹬,假如說想要很精確的話,可是讓UI把邊框的橘色部分像素給小嗡午,或者自己在裁剪的時候把這部分的像素減掉囤躁。

有什么不對的地方可以留言哦。
項目地址 https://gitee.com/dumdum/PhotoDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荔睹,一起剝皮案震驚了整個濱河市狸演,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僻他,老刑警劉巖宵距,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吨拗,居然都是意外死亡满哪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門劝篷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哨鸭,“玉大人,你說我怎么就攤上這事娇妓∠窦Γ” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵峡蟋,是天一觀的道長坟桅。 經(jīng)常有香客問我,道長蕊蝗,這世上最難降的妖魔是什么仅乓? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蓬戚,結(jié)果婚禮上夸楣,老公的妹妹穿的比我還像新娘。我一直安慰自己子漩,他們只是感情好豫喧,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幢泼,像睡著了一般紧显。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缕棵,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天孵班,我揣著相機與錄音涉兽,去河邊找鬼。 笑死篙程,一個胖子當(dāng)著我的面吹牛枷畏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虱饿,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拥诡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氮发?” 一聲冷哼從身側(cè)響起渴肉,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎爽冕,沒想到半個月后宾娜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扇售,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嚣艇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片承冰。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖食零,靈堂內(nèi)的尸體忽然破棺而出困乒,到底是詐尸還是另有隱情,我是刑警寧澤贰谣,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布娜搂,位于F島的核電站,受9級特大地震影響吱抚,放射性物質(zhì)發(fā)生泄漏百宇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一秘豹、第九天 我趴在偏房一處隱蔽的房頂上張望携御。 院中可真熱鬧,春花似錦既绕、人聲如沸啄刹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽誓军。三九已至,卻和暖如春疲扎,著一層夾襖步出監(jiān)牢的瞬間昵时,已是汗流浹背捷雕。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留债查,地道東北人非区。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像盹廷,于是被迫代替她去往敵國和親征绸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,500評論 25 707
  • 她是雪的孩子 人們用愛心把她塑成 她開心地看雪花飛舞 快樂地迎接寒風(fēng) 嚴(yán)寒使她變的堅強 寒風(fēng)吹開了她的笑容 溫柔的...
    宋煒閱讀 228評論 0 3
  • 1.創(chuàng)建APPID時俄占,勾選HealthKit 2.在Target-Capability勾選HealthKit 3....
    再剪開一夜風(fēng)雨閱讀 433評論 0 0
  • 這么好想去除黑頭方法的基本原則管怠、這么大概也不是那么好呢、一定是不是要是冷卻系統(tǒng)工程學(xué)會常務(wù)理事缸榄,我的心都碎了心的人...
    帥哥了你閱讀 179評論 0 1
  • repo就是: 注意:比如像配置.repo文件中: baseurl這個位置是寫的根目錄渤弛,一般來說根目錄下面都有一個...
    廖馬兒閱讀 4,349評論 0 0