File tree Expand file tree Collapse file tree 2 files changed +8
-4
lines changed Expand file tree Collapse file tree 2 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -659,7 +659,9 @@ - (nullable UIImage *)sd_tintedImageWithColor:(nonnull UIColor *)tintColor blend
659
659
} else {
660
660
clearColor = [[CIColor alloc ] initWithColor: UIColor.clearColor];
661
661
}
662
- ciImage = [CIImage imageWithColor: clearColor];
662
+ colorImage = [CIImage imageWithColor: clearColor];
663
+ colorImage = [colorImage imageByCroppingToRect: ciImage.extent];
664
+ ciImage = colorImage;
663
665
} else if (blendMode == kCGBlendModeCopy ) {
664
666
// R = S
665
667
ciImage = colorImage;
@@ -675,12 +677,14 @@ - (nullable UIImage *)sd_tintedImageWithColor:(nonnull UIColor *)tintColor blend
675
677
} else if (blendMode == kCGBlendModePlusDarker ) {
676
678
// R = MAX(0, (1 - D) + (1 - S))
677
679
// (1 - D)
678
- CIFilter *filter1 = [CIFilter filterWithName: @" CIColorInvert " ];
680
+ CIFilter *filter1 = [CIFilter filterWithName: @" CIColorControls " ];
679
681
[filter1 setValue: ciImage forKey: kCIInputImageKey ];
682
+ [filter1 setValue: @(-0.5 ) forKey: kCIInputBrightnessKey ];
680
683
ciImage = filter1.outputImage ;
681
684
// (1 - S)
682
- CIFilter *filter2 = [CIFilter filterWithName: @" CIColorInvert " ];
685
+ CIFilter *filter2 = [CIFilter filterWithName: @" CIColorControls " ];
683
686
[filter2 setValue: colorImage forKey: kCIInputImageKey ];
687
+ [filter2 setValue: @(-0.5 ) forKey: kCIInputBrightnessKey ];
684
688
colorImage = filter2.outputImage ;
685
689
// +
686
690
CIFilter *filter = [CIFilter filterWithName: @" CIAdditionCompositing" ];
Original file line number Diff line number Diff line change @@ -243,7 +243,7 @@ - (void)test06UIImageTransformTintWithImage:(UIImage *)testImage {
243
243
UIColor *topCenterColor = [tintedImage sd_colorAtPoint: CGPointMake (150 , 20 )];
244
244
expect ([topCenterColor.sd_hexString isEqualToString: [UIColor blackColor ].sd_hexString]).beTruthy ();
245
245
246
- UIImage *tintedSourceInImage = [testImage sd_tintedImageWithColor: tintColor blendMode: kCGBlendModeSourceOut ];
246
+ UIImage *tintedSourceInImage = [testImage sd_tintedImageWithColor: tintColor blendMode: kCGBlendModeSourceIn ];
247
247
centerColor = [tintedSourceInImage sd_colorAtPoint: CGPointMake (150 , 150 )];
248
248
expect ([centerColor.sd_hexString isEqualToString: [UIColor blackColor ].sd_hexString]).beTruthy ();
249
249
}
You can’t perform that action at this time.
0 commit comments