Pārlūkot izejas kodu

Apply alpha to border processor

onevcat 4 gadi atpakaļ
vecāks
revīzija
eb89f66973

+ 1 - 1
Demo/Demo/Kingfisher-Demo/ViewControllers/ProcessorCollectionViewController.swift

@@ -43,7 +43,7 @@ class ProcessorCollectionViewController: UICollectionViewController {
         (RoundCornerImageProcessor(radius: .point(20)), "Round Corner"),
         (RoundCornerImageProcessor(radius: .widthFraction(0.5), roundingCorners: [.topLeft, .bottomRight]), "Round Corner Partial"),
         (BorderImageProcessor(border: .init(color: .systemBlue, lineWidth: 8)), "Border"),
-        (RoundCornerImageProcessor(radius: .widthFraction(0.2)) |> BorderImageProcessor(border: .init(color: .systemBlue, lineWidth: 12, radius: .widthFraction(0.2))), "Round Border"),
+        (RoundCornerImageProcessor(radius: .widthFraction(0.2)) |> BorderImageProcessor(border: .init(color: .systemBlue.withAlphaComponent(0.7), lineWidth: 12, radius: .widthFraction(0.2))), "Round Border"),
         (BlendImageProcessor(blendMode: .lighten, alpha: 1.0, backgroundColor: .red), "Blend"),
         (BlurImageProcessor(blurRadius: 5), "Blur"),
         (OverlayImageProcessor(overlay: .red, fraction: 0.5), "Overlay"),

+ 1 - 1
Sources/Image/ImageDrawing.swift

@@ -383,7 +383,7 @@ extension KingfisherWrapper where Base: KFCrossPlatformImage {
             
             let strokeRect =  rect.insetBy(dx: border.lineWidth / 2, dy: border.lineWidth / 2)
             context.setStrokeColor(border.color.cgColor)
-            context.setAlpha(0.5)
+            context.setAlpha(border.color.rgba.a)
             
             let line = pathForRoundCorner(
                 rect: strokeRect,

+ 9 - 1
Sources/Image/ImageProcessor.swift

@@ -900,7 +900,8 @@ public func |>(left: ImageProcessor, right: ImageProcessor) -> ImageProcessor {
 }
 
 extension KFCrossPlatformColor {
-    var hex: String {
+    
+    var rgba: (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) {
         var r: CGFloat = 0
         var g: CGFloat = 0
         var b: CGFloat = 0
@@ -911,6 +912,13 @@ extension KFCrossPlatformColor {
         #else
         getRed(&r, green: &g, blue: &b, alpha: &a)
         #endif
+        
+        return (r, g, b, a)
+    }
+    
+    var hex: String {
+        
+        let (r, g, b, a) = rgba
 
         let rInt = Int(r * 255) << 24
         let gInt = Int(g * 255) << 16