Skip to content

Fix image processing on iOS#88

Open
ltatarev wants to merge 2 commits intocandlefinance:mainfrom
ltatarev:main
Open

Fix image processing on iOS#88
ltatarev wants to merge 2 commits intocandlefinance:mainfrom
ltatarev:main

Conversation

@ltatarev
Copy link
Contributor

Following changes from #67, the iOS implementation had issues preventing grayscale and colorMatrix from working correctly:

  • Processor Override: When both properties were set, each didSet independently overwrote lazyImageView.processors, so only the last-set property took effect.

  • Cache Issues: All color matrices shared the same static identifier ("custom.colorMatrix"), causing incorrect cached images when different matrices were applied. Rendering same image with different filters in a list was impossible, since only the first colorMatrix would take affect and be applied to all other images.

Changes:

  • Added updateProcessors() method that consolidates both processors into a single array, called by both didSet blocks. This allows both transformations to be applied.

  • Skips the color matrix processor when an identity matrix is detected, avoiding unnecessary overhead.

  • Replaced static identifier with hash-based generation (generateColorMatrixIdentifier()). Each unique matrix now gets a unique cache key, preventing collisions while allowing proper cache reuse for identical matrices.
    Format: "custom.colorMatrix.<16-char-hex-hash>"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant