- (UIImage*)image:(UIImage*)image fortargetSize: (CGSize)targetSize{
UIImage*sourceImage = image;
CGSize imageSize = sourceImage.size;//圖片的size
CGFloat imageWidth = imageSize.width;//圖片寬度
CGFloat imageHeight = imageSize.height;//圖片高度
NSInteger judge;//聲明一個(gè)判斷屬性
//判斷是否需要調(diào)整尺寸(這個(gè)地方的判斷標(biāo)準(zhǔn)又個(gè)人決定,在此我是判斷高大于寬),因?yàn)閳D片是800*480,所以也可以變成480*800
if( ( imageHeight - imageWidth)>0) {
//在這里我將目標(biāo)尺寸修改成480*800
CGFloat tempW = targetSize.width;
CGFloat tempH = targetSize.height;
targetSize.height= tempW;
targetSize.width= tempH;
}
CGFloat targetWidth = targetSize.width;//獲取最終的目標(biāo)寬度尺寸
CGFloat targetHeight = targetSize.height;//獲取最終的目標(biāo)高度尺寸
CGFloat scaleFactor ;//先聲明拉伸的系數(shù)
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint =CGPointMake(0.0,0.0);//這個(gè)是圖片剪切的起點(diǎn)位置
//第一個(gè)判斷,圖片大小寬跟高都小于目標(biāo)尺寸,直接返回image
if( imageHeight < targetHeight && imageWidth < targetWidth) {
return image;
}
if ( CGSizeEqualToSize(imageSize, targetSize ) ==NO ) {
CGFloat widthFactor = targetWidth / imageWidth; //這里是目標(biāo)寬度除以圖片寬度
CGFloat heightFactor = targetHeight / imageHeight; //這里是目標(biāo)高度除以圖片高度
//分四種情況,
//第一種,widthFactor,heightFactor都小于1,也就是圖片寬度跟高度都比目標(biāo)圖片大,要縮小
if(widthFactor <1&& heightFactor<1){
//第一種,需要判斷要縮小哪一個(gè)尺寸,這里看拉伸尺度,我們的scale在小于1的情況下,誰(shuí)越小,等下就用原圖的寬度高度??那一個(gè)系數(shù)(這里不懂的話(huà),代個(gè)數(shù)想一下,例如目標(biāo)800*480 原圖1600*800 系數(shù)就采用寬度系數(shù)widthFactor = 1/2 )
if(widthFactor > heightFactor){
judge =1;//右部分空白
scaleFactor = heightFactor; //修改最后的拉伸系數(shù)是高度系數(shù)(也就是最后要*這個(gè)值)
}else{
judge =2;//下部分空白
scaleFactor = widthFactor;
}
}else if(widthFactor >1&& heightFactor <1){
//第二種,寬度不夠比例,高度縮小一點(diǎn)點(diǎn)(widthFactor大于一,說(shuō)明目標(biāo)寬度比原圖片寬度大,此時(shí)只要拉伸高度系數(shù))
judge =3;//下部分空白
//采用高度拉伸比例
scaleFactor = imageWidth / targetWidth;// 計(jì)算高度縮小系數(shù)
}else if(heightFactor >1&& widthFactor <1){
//第三種,高度不夠比例,寬度縮小一點(diǎn)點(diǎn)(heightFactor大于一,說(shuō)明目標(biāo)高度比原圖片高度大,此時(shí)只要拉伸寬度系數(shù))
judge =4;//下邊空白
//采用高度拉伸比例
scaleFactor = imageHeight / targetWidth;
}else{
//第四種,此時(shí)寬度高度都小于目標(biāo)尺寸,不必要處理放大(如果有處理放大的,在這里寫(xiě)).
}
scaledWidth= imageWidth * scaleFactor;
scaledHeight = imageHeight * scaleFactor;
}
if(judge ==1){
//右部分空白
targetWidth = scaledWidth;//此時(shí)把原來(lái)目標(biāo)剪切的寬度改小,例如原來(lái)可能是800,現(xiàn)在改成780
}else if(judge ==2){
//下部分空白
targetHeight = scaledHeight;
}else if(judge ==3){
//第三種,高度不夠比例,寬度縮小一點(diǎn)點(diǎn)
targetWidth = scaledWidth;
}else{
//第三種,高度不夠比例,寬度縮小一點(diǎn)點(diǎn)
targetHeight= scaledHeight;
}
UIGraphicsBeginImageContext(targetSize);//開(kāi)始剪切
CGRect thumbnailRect =CGRectZero;//剪切起點(diǎn)(0,0)
thumbnailRect.origin= thumbnailPoint;
thumbnailRect.size.width= scaledWidth;
thumbnailRect.size.height= scaledHeight;
[sourceImage drawInRect:thumbnailRect];
UIImage*newImage =UIGraphicsGetImageFromCurrentImageContext();//截圖拿到圖片
return newImage;
}
裁剪圖片
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)刃跛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人苛萎,你說(shuō)我怎么就攤上這事桨昙。” “怎么了腌歉?”我有些...
- 文/不壞的土叔 我叫張陵蛙酪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我翘盖,道長(zhǎng)桂塞,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任馍驯,我火速辦了婚禮阁危,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汰瘫。我一直安慰自己狂打,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布混弥。 她就那樣靜靜地躺著趴乡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浙宜,一...
- 那天官辽,我揣著相機(jī)與錄音,去河邊找鬼粟瞬。 笑死同仆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的裙品。 我是一名探鬼主播俗批,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼市怎!你這毒婦竟也來(lái)了岁忘?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤区匠,失蹤者是張志新(化名)和其女友劉穎干像,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體驰弄,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡麻汰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戚篙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片五鲫。...
- 正文 年R本政府宣布塑崖,位于F島的核電站,受9級(jí)特大地震影響痛倚,放射性物質(zhì)發(fā)生泄漏规婆。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一状原、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苗踪,春花似錦颠区、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春朋截,著一層夾襖步出監(jiān)牢的瞬間蛹稍,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓廓八,卻偏偏與公主長(zhǎng)得像奉芦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剧蹂,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 先來(lái)一波效果声功,喜歡的請(qǐng)收走 gif圖可能加載稍久 使用說(shuō)明 單選 (選擇圖片-圖片編輯-圖片裁剪) 首先導(dǎo)入Bee...
- 隨筆 最近在做的一個(gè)項(xiàng)目中有用到從圖庫(kù)中選擇圖片,然后進(jìn)行裁剪后再使用的功能宠叼,在這里也簡(jiǎn)單的記錄下整個(gè)實(shí)現(xiàn)的過(guò)程先巴,...
- 需求是連接打印機(jī)伸蚯,將文本內(nèi)容生成圖片然后裁剪之后傳輸給打印機(jī)打印。生成圖片之后效果 大概原理是拿到View的上下文...
- 一款用于在Android設(shè)備上獲取照片(拍照或從相冊(cè)丈咐、文件中選擇)瑞眼、裁剪圖片、壓縮圖片的開(kāi)源工具庫(kù)https://...
- TakePhoto 簡(jiǎn)介 TakePhoto是一款用于在Android設(shè)備上獲取照片(拍照或從相冊(cè)徒像、文件中選擇)、...