@b.taranenko/expo-ios-ci-filters
v0.0.7
Published
๐ธ iOS Core Image filters for Expo + React Native โจ
Maintainers
Readme
โจ Features
๐ผ Bridge to iOS Core Image โ Use Appleโs native Core Image filters directly in React Native via a simple component API.
๐ Multiple filters at once โ Chain multiple filters (e.g.,
motionBlur+colorControls+vignette) in a single render pass.โก Real-time performance โ Filters are applied using native iOS rendering for smooth, GPU-accelerated updates.
๐จ Color & tone controls โ Adjust
brightness,contrast,saturation,exposure,vibrance,gamma,hue.๐ Advanced blur effects โ Motion blur, Gaussian blur, masked variable blur (with per-point control).
๐ Sharpen & vignette โ Enhance edges or apply cinematic vignette styling.
๐ Gradient overlay โ Add multi-stop gradients with configurable positions, RGBA values, and Core Image blend modes.
๐ Full parameter control โ Configure filter parameters with fine-grained TypeScript typings:
- Normalized coordinates (
point0X,point0Y, etc.) - Radians for angles
- Blend modes (
screen,multiply, etc.)
- Normalized coordinates (
๐ Safe border radius โ Native
borderRadiussupport for rounded-corner images.๐งฉ Simple props interface โ Pass props directly to
<CIFilterView />, no need to learn Core Image API syntax.๐ฑ Expo & React Native support โ Works seamlessly in Expo SDK 53+ projects without ejecting.
๐ฎ Future-proof โ Easy to extend with new Core Image filters as theyโre added in iOS updates.
๐ฆ Installation
pnpm install expo-ios-ci-filtersThen install pods:
cd ios && pod installNote: This library is iOS-only (Core Image is iOS-specific). Requires Expo SDK 53+.
๐ Usage
import React from "react";
import { View, StyleSheet } from "react-native";
import { CIFilterImage } from "expo-ios-ci-filters";
export default function App() {
return (
<View style={styles.container}>
<CIFilterImage
url="https://images.pexels.com/photos/1042423/pexels-photo-1042423.jpeg"
motionBlur={{
angle: 0,
radius: 20,
}}
style={styles.image}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
image: {
width: 300,
height: 300,
},
});๐ Supported Filters
| Filter | Config Interface | Properties |
| -------------------- | -------------------------- | ---------------------------------------------------------------- |
| Motion Blur | MotionBlurConfig | radius, angle |
| Gaussian Blur | GaussianBlurConfig | radius |
| Masked Variable Blur | MaskedVariableBlurConfig | radius, point0X/Y, point1X/Y, color0Alpha, color1Alpha |
| Color Controls | ColorControlsConfig | brightness, contrast, saturation |
| Exposure | ExposureConfig | ev |
| Vibrance | VibranceConfig | amount |
| Gamma Adjust | GammaConfig | power |
| Hue Adjust | HueAdjustConfig | angle |
| Sharpen | SharpenConfig | sharpness |
| Vignette | VignetteConfig | intensity, radius |
| Gradient Overlay | GradientOverlayConfig | Position, colors, blendMode |
๐ License
MIT ยฉ rit3zh Built with โค๏ธ using Expo and Core Image.
