Sfoglia il codice sorgente

Merge pull request #486 from onevcat/fix/ciimageprocessor-data

Apply filter to CIImageProcessor in data case
Wei Wang 9 anni fa
parent
commit
c1371ad4e7

+ 2 - 2
Sources/Filter.swift

@@ -45,8 +45,8 @@ extension CIImageProcessor {
         switch item {
         case .image(let image):
             return image.kf.apply(filter)
-        case .data(let data):
-            return Kingfisher<Image>.image(data: data, scale: options.scaleFactor, preloadAllGIFData: options.preloadAllGIFData)
+        case .data(_):
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }

+ 6 - 6
Sources/ImageProcessor.swift

@@ -156,7 +156,7 @@ public struct RoundCornerImageProcessor: ImageProcessor {
             let size = targetSize ?? image.kf.size
             return image.kf.image(withRoundRadius: cornerRadius, fit: size, scale: options.scaleFactor)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }
@@ -183,7 +183,7 @@ public struct ResizingImageProcessor: ImageProcessor {
         case .image(let image):
             return image.kf.resize(to: targetSize)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }
@@ -212,7 +212,7 @@ public struct BlurImageProcessor: ImageProcessor {
             let radius = blurRadius * options.scaleFactor
             return image.kf.blurred(withRadius: radius)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }
@@ -246,7 +246,7 @@ public struct OverlayImageProcessor: ImageProcessor {
         case .image(let image):
             return image.kf.overlaying(with: overlay, fraction: fraction)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }
@@ -274,7 +274,7 @@ public struct TintImageProcessor: ImageProcessor {
         case .image(let image):
             return image.kf.tinted(with: tint)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }
@@ -318,7 +318,7 @@ public struct ColorControlsProcessor: ImageProcessor {
         case .image(let image):
             return image.kf.adjusted(brightness: brightness, contrast: contrast, saturation: saturation, inputEV: inputEV)
         case .data(_):
-            return (DefaultImageProcessor() >> self).process(item: item, options: options)
+            return (DefaultImageProcessor.default >> self).process(item: item, options: options)
         }
     }
 }

+ 10 - 0
Tests/KingfisherTests/ImageProcessorTests.swift

@@ -117,6 +117,16 @@ class ImageProcessorTests: XCTestCase {
         // See results in Resource folder.
         checkProcessor(p, with: "blur-4-round-corner-60", noAlpha: true)
     }
+    
+    func testCIImageProcessor() {
+        let p = TestCIImageProcessor(filter: .tint(Color.yellow.withAlphaComponent(0.2)))
+        checkProcessor(p, with: "tint-yellow-02")
+    }
+}
+
+struct TestCIImageProcessor: CIImageProcessor {
+    let identifier = "com.onevcat.kingfishertest.tint"
+    let filter: Filter
 }
 
 extension ImageProcessorTests {