iOS image處理BlendModes
switch (blendMode) {
case kCGBlendModeNormal: {
strMsg = @"kCGBlendModeNormal: 正常;也是預設的模式。前景圖會覆蓋背景圖";
break;
}
case kCGBlendModeMultiply: {
strMsg = @"kCGBlendModeMultiply: 正片疊底;混合了前景和背景的顏色,最終顏色比原先的都暗";
break;
}
case kCGBlendModeScreen: {
strMsg = @"kCGBlendModeScreen: 濾色;把前景和背景圖的顏色先反過來,然後混合";
break;
}
case kCGBlendModeOverlay: {
strMsg = @"kCGBlendModeOverlay: 覆蓋;能保留灰度資訊,結合kCGBlendModeSaturation能保留透明度資訊,在imageWithBlendMode方法中兩次執行drawInRect方法實現我們基本需求";
break;
}
case kCGBlendModeDarken: {
strMsg = @"kCGBlendModeDarken: 變暗"; //將線條色變為黑色,背景色設定為目的色
break;
}
case kCGBlendModeLighten: {
strMsg = @"kCGBlendModeLighten: 變亮";
break;
}
case kCGBlendModeColorDodge: {
strMsg = @"kCGBlendModeColorDodge: 顏色變淡";
break;
}
case kCGBlendModeColorBurn: {
strMsg = @"kCGBlendModeColorBurn: 顏色加深"; //線條顏色(原本)加深,背景色設定為目的色
break;
}
case kCGBlendModeSoftLight: {
strMsg = @"kCGBlendModeSoftLight: 柔光";
break;
}
case kCGBlendModeHardLight: {
strMsg = @"kCGBlendModeHardLight: 強光"; //全為目的色
break;
}
case kCGBlendModeDifference: {
strMsg = @"kCGBlendModeDifference: 插值";
break;
}
case kCGBlendModeExclusion: {
strMsg = @"kCGBlendModeExclusion: 排除";
break;
}
case kCGBlendModeHue: {
strMsg = @"kCGBlendModeHue: 色調";
break;
}
case kCGBlendModeSaturation: {
strMsg = @"kCGBlendModeSaturation: 飽和度";
break;
}
case kCGBlendModeColor: {
strMsg = @"kCGBlendModeColor: 顏色"; //感覺將圖片線條色設定為白色,背景色設定為目的色,之後再再圖片上加一個有透明度的目的色
break;
}
case kCGBlendModeLuminosity: {
strMsg = @"kCGBlendModeLuminosity: 亮度";
break;
}
//Apple額外定義的列舉
//R: premultiplied result, 表示混合結果
//S: Source, 表示源顏色(Sa對應透明度值: 0.0-1.0)
//D: destination colors with alpha, 表示帶透明度的目標顏色(Da對應透明度值: 0.0-1.0)
case kCGBlendModeClear: {
strMsg = @"kCGBlendModeClear: R = 0"; //1.清空(如果圖示背景色為白色則為全白)
break;
}
case kCGBlendModeCopy: {
strMsg = @"kCGBlendModeCopy: R = S"; //2全色覆蓋整個圖片
break;
}
case kCGBlendModeSourceIn: {
strMsg = @"kCGBlendModeSourceIn: R = S*Da"; //3.線條變色
break;
}
case kCGBlendModeSourceOut: {
strMsg = @"kCGBlendModeSourceOut: R = S*(1 - Da)"; //4.背景變為目的色,線條自動變為白色(比如圖示線條原為藍色,會自動變為白色)
break;
}
case kCGBlendModeSourceAtop: {
strMsg = @"kCGBlendModeSourceAtop: R = S*Da + D*(1 - Sa)"; //5.線條變色,目前感覺和SourceIn效果一致
break;
}
case kCGBlendModeDestinationOver: {
strMsg = @"kCGBlendModeDestinationOver: R = S*(1 - Da) + D"; //6.背景色變為目的色,線條色不變
break;
}
case kCGBlendModeDestinationIn: {
strMsg = @"kCGBlendModeDestinationIn: R = D*Sa;能保留透明度資訊"; //7.只看到線條色(本色),無其他顏色
break;
}
case kCGBlendModeDestinationOut: {
strMsg = @"kCGBlendModeDestinationOut: R = D*(1 - Sa)"; //8.空白什麼都沒喲
break;
}
case kCGBlendModeDestinationAtop: {
strMsg = @"kCGBlendModeDestinationAtop: R = S*(1 - Da) + D*Sa"; //9.會把整個矩形的背景填充目的色(如圖9系列)原色保留
break;
}
case kCGBlendModeXOR: {
strMsg = @"kCGBlendModeXOR: R = S*(1 - Da) + D*(1 - Sa)"; //10.線條變白,背景色變為目的色
break;
}
case kCGBlendModePlusDarker: {
strMsg = @"kCGBlendModePlusDarker: R = MAX(0, (1 - D) + (1 - S))"; //11.線條變為黑色, 背景色變為目的色
break;
}
case kCGBlendModePlusLighter: {
strMsg = @"kCGBlendModePlusLighter: R = MIN(1, S + D)(最後一種混合模式)"; //12.線條變為白色(混合色:如color為紅色,就是偏粉色的白,有一定透明度的感覺)
break;
}
default: {
break;
}
相關文章
- Swift Image 的處理Swift
- SwiftUI Image 圖片處理SwiftUI
- Golang 圖片處理 — image 庫Golang
- 002.00 圖片處理 PIL.Image
- Laravel 使用 Intervention/image 處理圖片Laravel
- iOS圖形處理概論:OpenGL ES,Metal,Core Graphics,Core Image,GPUImage,OpenCV等iOSGPUUIOpenCV
- iOS 中多音訊處理iOS音訊
- 圖片處理擴充套件 Intervention/image 的簡單使用套件
- 指令碼處理iOS的Crash日誌指令碼iOS
- 我的 iOS 音訊處理總結iOS音訊
- python+selenium 處理圖片驗證碼,Image 點不出 crop 方法Python
- 使用 Intervention/image 對 Laravel 專案中的圖片進行處理Laravel
- iOS換膚功能的簡單處理框架iOS框架
- 移動端ios對lable radio的處理iOS
- react native 處理iOS和安卓系統文字React NativeiOS安卓
- 關於移動端IOS active失效的處理iOS
- iOS for 迴圈內網路請求的處理iOS內網
- DDGScreenShot —iOS 圖片處理--多圖片拼接 (swift)iOSSwift
- IOS系統閃退異常(Crash)捕獲處理iOS
- iOS --NSDecimalNumber 處理計算精度不準確問題iOSDecimal
- [iOS][OC] 自定義 Promise 處理序列的非同步操作iOSPromise非同步
- .9圖怎麼切?iOS如何處理這種圖片iOS
- 移動端複製文字clipboard 以及針對iOS的處理iOS
- ios手機處理keyup事件時的相容性問題iOS事件
- 多對一處理 和一對多處理的處理
- weex踩坑之image圖片在ios/Android不顯示iOSAndroid
- JSP 異常處理如何處理?JS
- 號外號外, react-native-image-picker react-native外掛突然掛掉應急處理React
- 【MATLAB Image Processing Toolbox 入門教程九】“匯入、匯出和轉換”之“影像序列和批處理”Matlab
- 不需要任何依賴的圖片載入錯誤處理的工具類load-image.jsJS
- iOS 使用者體驗文件(appicon 等image的規範)iOSAPP
- WPF Image Image clip EllipseGeometry
- iOS和macOS應用程式本地資料庫金鑰處理設計iOSMac資料庫
- Django來敲門~第一部分【8.網頁中的css/js/image處理Django網頁CSSJS
- 字串處理字串
- 平滑處理
- 事件處理事件
- 模板處理