Comments (2)
I am not sure if it is an abusing of ImageProcessor
, but how about these code?
struct MetaDataProcessor: ImageProcessor {
let metaData: MetaData // can be an int, or anything else you can customize.
var identifier: String { /* It is better to return a value can be identified by the metaData. */ }
func process(item: ImageProcessItem, options: KingfisherParsedOptionsInfo) -> KFCrossPlatformImage? {
switch item {
case .image(let image):
// You now have the correct metaData here.
return image
case .data:
// You can even leave empty, this case won't be called.
return UIImage()
}
}
}
struct CustomProcessor: ImageProcessor {
let identifier: String
func process(item: ImageProcessItem, options: KingfisherParsedOptionsInfo) -> KFCrossPlatformImage? {
switch item {
case .image(let image):
return image
case .data:
let src = CGImageSourceCreateWithData(data as CFData, nil)
let metadata = CGImageSourceCopyMetadataAtIndex(src!, 0, nil)
let next = MetaDataProcessor(metaData: metadata)
return (DefaultImageProcessor.default |> next).process(item: item, options: options)
}
}
}
And in the use case, make sure you set the CustomProcessor
as the first of the .processor
option.
from kingfisher.
Thank you so much @onevcat!
from kingfisher.
Related Issues (20)
- KingfisherManager.shared warning on Xcode 15.3 with Strict Concurrency Checking set to complete HOT 4
- Crash at ImageContext.swift line 84. EXC_BAD_ACCESS (SIGSEGV) HOT 1
- Race Condition in ImageDownloader.addDownloadTask HOT 1
- Some Crashs On iPad5.3
- CPListItem' is only available in iOS 12.0 or newer HOT 1
- 同一个cacheKey有不用的downloadURL,主要是加入size控制,如何实现同一cacheKey只缓存size更大的图片数据呢
- [Question] Show a stub ONLY after attempt to load image by URL. HOT 1
- SwiftUI中如何使用progressiveJPEG
- Memory issue
- How do I add suffixes to cache paths, such as.jpg HOT 2
- Undefined symbols for architecture arm64: HOT 1
- ingfisherWebP 在iOS16.7.7 系统中,加载webp 图片不会动,在其他系统中没问题 HOT 1
- Disk Cache can grow significantly larger than 'sizeLimit' HOT 4
- dyld[769]: Library not loaded: @rpath/lib/libswiftCoreGraphics.dylib HOT 1
- No trust evaluation handling after receiving the authentication challenge HOT 1
- No exact matches in call to instance method 'retrieveImage' HOT 1
- 【QUESTION】Kingfisher In Memory Graph HOT 5
- 使用ResizingImageProcessor Crash HOT 7
- SessionDelegate.urlSession(_:dataTask:didReceive:) HOT 2
- Unable to cancel task if an image has a custom Image Processor HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kingfisher.