iOS程式碼獲取圖片主色調
最近的開發過程中,有一個功能是根據銀行的圖示來確定cell的背景顏色,即獲取圖片的主色調。網上搜索了一些方法,發現有位博主分享了一個很好的程式碼方法,不過效果感覺不是特別明顯,或者說變化不是很大,如圖:
後來仔細想了一下,程式碼和方法是沒有錯誤的,但是我們把透明顏色以及白色也計算進去了,所以效果才會那麼不明顯。所以在進行rgb色值獲取的時候,排除掉透明色及白色即可,修改後的程式碼如下:
最後的效果也是特別明顯的,如圖://根據圖片獲取圖片的主色調 +(UIColor*)mostColor:(UIImage*)image{ #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 int bitmapInfo = kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast; #else int bitmapInfo = kCGImageAlphaPremultipliedLast; #endif //第一步 先把圖片縮小 加快計算速度. 但越小結果誤差可能越大 CGSize thumbSize=CGSizeMake(image.size.width/2, image.size.height/2); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(NULL, thumbSize.width, thumbSize.height, 8,//bits per component thumbSize.width*4, colorSpace, bitmapInfo); CGRect drawRect = CGRectMake(0, 0, thumbSize.width, thumbSize.height); CGContextDrawImage(context, drawRect, image.CGImage); CGColorSpaceRelease(colorSpace); //第二步 取每個點的畫素值 unsigned char* data = CGBitmapContextGetData (context); if (data == NULL) return nil; NSCountedSet *cls=[NSCountedSet setWithCapacity:thumbSize.width*thumbSize.height]; for (int x=0; x<thumbSize.width; x++) { for (int y=0; y<thumbSize.height; y++) { int offset = 4*(x*y); int red = data[offset]; int green = data[offset+1]; int blue = data[offset+2]; int alpha = data[offset+3]; if (alpha>0) {//去除透明 if (red==255&&green==255&&blue==255) {//去除白色 }else{ NSArray *
[email protected][@(red),@(green),@(blue),@(alpha)]; [cls addObject:clr]; } } } } CGContextRelease(context); //第三步 找到出現次數最多的那個顏色 NSEnumerator *enumerator = [cls objectEnumerator]; NSArray *curColor = nil; NSArray *MaxColor=nil; NSUInteger MaxCount=0; while ( (curColor = [enumerator nextObject]) != nil ) { NSUInteger tmpCount = [cls countForObject:curColor]; if ( tmpCount < MaxCount ) continue; MaxCount=tmpCount; MaxColor=curColor; } return [UIColor colorWithRed:([MaxColor[0] intValue]/255.0f) green:([MaxColor[1] intValue]/255.0f) blue:([MaxColor[2] intValue]/255.0f) alpha:([MaxColor[3] intValue]/255.0f)]; }
相關推薦
iOS程式碼獲取圖片主色調
最近的開發過程中,有一個功能是根據銀行的圖示來確定cell的背景顏色,即獲取圖片的主色調。網上搜索了一些方法,發現有位博主分享了一個很好的程式碼方法,不過效果感覺不是特別明顯,或者說變化不是很大,如圖: 後來仔細想了一下,程式碼和方法是沒有錯誤的,但是我們把透明顏色以及白
android 獲取圖片主色調
在build.gradle新增依賴 compile 'com.github.florent37:glidepalette:1.0.6' 使用 TextView tvColor=(TextView) findViewById(R.id.testte); ImageVie
iOS-TZImagePickerController獲取圖片視訊
TZImagePickerControllerDemo 專案介紹 TZImagePickerControllerDemo Podfile新增行 pod 'TZImagePickerController' 使用之前匯入標頭檔案 #import <TZImagePick
Android Lollipop:使用Palette抽取圖片主色調
轉載請註明:https://blog.csdn.net/u012854870/article/details/84790724 使用Palette抽取Bitmap主色調 關於Palette 一些Support庫隨著Android Lollipop的釋出而誕生了,其中就有Palette。這
Canvas獲取影象、圖片的平均顏色或主色調
轉載自:https://blog.csdn.net/teajs/article/details/50124207 首先,我們可以使用canvas的getImageData函式獲取所有畫素的資料。 然後將所有的rgb三值各取平均值即可。 function getImageColor(can
iOS獲取圖片的區域主色
之前的專案有這樣的需求,有一個頁面可以檢索一塊區域內圖片的主色。效果圖如圖所示 下面是如何獲取區域主色的實現思路: 首先,我們需要從相簿,或者相機去獲取圖片; 其次,得到圖片需要擷取區域圖片; 然後,獲取擷取圖片的主色。 理想中是這樣的,但是有很多
iOS 獲取圖片某一點的顏色對象(UIColor*)。
[1] bsp uicolor com component tpi div outside 獲取圖片 - (UIColor *)colorAtPixel:(CGPoint)point { // Cancel if p
iOS 實現獲取遠端的圖片並顯示
好久沒寫了,新實現了遠端獲取圖片,磕磕絆絆還是完成了,現在分享一下,希望能幫到大家!我的需求⬆️從一個介面獲取到圖片的名稱並將其分別拼接到路徑上,並取出來。 (1)首先你要定義一個函式,用來獲取URL上的圖片的路徑,並進行一些處理 .h檔案 #import <Foundatio
iOS開發技巧之:獲取ios相簿gif圖片 原資料
<AssetsLibrary/AssetsLibrary.h> 從Safari上儲存了一張動態GIF到本地的相簿中可以確定,儲存到本地相簿的動態GIF沒有問題,只是iPhone的相簿不能顯示動態GIF然後在自己的應用中,要可以選擇GIF圖片上傳到伺服器用UIImagePickerCo
ios通過圖片的URL地址,從網路上獲取圖片(UIImage型別)
-(UIImage *) getImageFromURL:(NSString *)fileURL { UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithSt
iOS 非同步載入網路圖片,獲取圖片真實尺寸
專案需求: 在網路上載入一組圖片的資料,並且這組圖片要按照比例展示出來 做法分析: (1)首頁介面上要是使用的圖片控制元件的建立,這裡的高度是用設定的高度,這部分需要在主執行緒完成; (2)第二部部分是獲取圖片的實際尺寸,這部分線上程中完成; (3)然後需要在主執行緒重新整
Crawler/ML:爬蟲技術(基於urllib.request庫從網頁獲取圖片)+HierarchicalClustering層次聚類演算法,實現自動從網頁獲取圖片然後根據圖片色調自動分類
網上教程太囉嗦,本人最討厭一大堆沒用的廢話,直接上,就是幹! 網路爬蟲?非監督學習? 只有兩步,只有兩個步驟? Are you kidding me? Are you ok? 來吧,follow me, come on! 一、爬蟲下載圖片 第一步:首先,我們從網
iOS WebView 獲取記憶體圖片 圖片點選
獲取UIWebView 記憶體中的圖片需要用到一個第三方RNCachingURLProTocol 使用步驟 1 在appdelegate 裡邊註冊。2 在相關獲取到ImageURL 以後呼叫 NSString *fileName = [RNCachingUR
iOS照相機獲取到的圖片自動旋轉90度解決辦法
情景再現: iOS開發過程中,要實現用用手機攝像頭拍一張照片,經過裁剪壓縮,然後發出去。結果發出去的圖片始終是逆時針旋轉了90度的圖片。 事出有因: 相機拍照後直接取出來的UIimage(用UIImagePickerControllerOriginalIma
IOS獲取圖片方法,避免記憶體過大閃退
建議使用該方法獲取圖片 NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"sun" ofType:@"png"]; UIImage *image = [[UIImage alloc] initWit
iOS 圖片模糊處理和自動獲取圖片尺寸
1.圖片模糊處理: 方法一: + (UIImage *)coreBlurImage:(UIImage *)image withBlurNumber:(CGFloat)blur { CIContext *context = [CICon
iOS多張圖片上傳多執行緒處理方法(可獲取最後一張上傳狀態後的訊號)
環境重現 1,服務端提供單張上傳的介面。 2,客戶端需求同時提交多張圖片上傳。 3,使用AFNetWorking 或 自封裝的帶有block回撥網路狀態的框架。 思路 1,建立一個管理類。 2,提供一個單例方法。保證管理類唯一 3,提供一個公共
ios app獲取LaunchImages中的圖片
遇到一個需求,讀取LaunchImages中的圖片作為一個VC的背景圖,蒐羅一圈沒找到靠譜的解決方案。 下面的程式碼可以解決,暫時還沒有遇到問題,只是感覺不太好。如果有更好的方案,請留言告知,在此先道
iOS 開發-SDWebImage訪問HTTPS站點獲取圖片資源失敗解決辦法
最簡單的粗暴的方法: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options
ios程式碼調整button圖片image文字title位置
自定義一個button,要調整 button中的image(注意,不是backgroundImage) 和 title 文字的位置,只需要重寫 Button類獨對應的兩個方法即可: 首先,我們來建立一個 SuperButton繼承自 UIButton