UNPKG

react-native-image-filter-kit

Version:
195 lines (182 loc) 4.42 kB
import { LinearGradientConfig, RadialGradientConfig, SweepGradientConfig, TextImageConfig, CircleShapeConfig, OvalShapeConfig, PathShapeConfig, RegularPolygonShapeConfig, shapes, QuadGradientConfig, EllipticalGradientConfig, RectangularGradientConfig } from './shapes' import { TransformMap } from '../common/shapes' export const shapeTransforms: TransformMap<typeof shapes> = { Color: ({ color, image, ...config }: { color: string; image: object }) => ({ ...config, name: 'IosCIConstantColorGenerator', inputImage: image, inputColor: color }), LinearGradient: ({ colors = ['red', 'blue'], stops = [0, 1], start = { x: 0, y: '0h' }, end = { x: '100w', y: '0h' }, image, mixStep, ...config }: LinearGradientConfig) => ({ ...config, name: 'IosIFKLinearGradient', inputMixStep: mixStep, inputImage: image, inputColors: colors, inputStops: stops, inputStart: start, inputEnd: end }), RadialGradient: ({ colors = ['red', 'blue'], stops = [0, 1], center = { x: '50w', y: '50h' }, radius = '50min', image, mixStep, ...config }: RadialGradientConfig) => ({ ...config, name: 'IosIFKRadialGradient', inputMixStep: mixStep, inputImage: image, inputColors: colors, inputStops: stops, inputCenter: center, inputRadius: radius }), EllipticalGradient: ({ colors = ['red', 'blue'], stops = [0, 1], center = { x: '50w', y: '50h' }, radiusX = '50w', radiusY = '50h', image, mixStep, ...config }: EllipticalGradientConfig) => ({ ...config, name: 'IosIFKEllipticalGradient', inputMixStep: mixStep, inputImage: image, inputColors: colors, inputStops: stops, inputCenter: center, inputRadiusX: radiusX, inputRadiusY: radiusY }), RectangularGradient: ({ colors = ['red', 'blue'], stops = [0, 1], center = { x: '50w', y: '50h' }, halfWidth = '50w', halfHeight = '50h', image, mixStep, ...config }: RectangularGradientConfig) => ({ ...config, name: 'IosIFKRectangularGradient', inputMixStep: mixStep, inputImage: image, inputColors: colors, inputStops: stops, inputCenter: center, inputHalfWidth: halfWidth, inputHalfHeight: halfHeight }), SweepGradient: ({ colors = ['red', 'blue'], stops = [0, 1], center = { x: '50w', y: '50h' }, image, mixStep, ...config }: SweepGradientConfig) => ({ ...config, name: 'IosIFKSweepGradient', inputMixStep: mixStep, inputImage: image, inputColors: colors, inputStops: stops, inputCenter: center }), QuadGradient: ({ bottomLeftColor, bottomRightColor, topLeftColor, topRightColor, image, ...config }: QuadGradientConfig) => ({ ...config, name: 'IosIFKQuadGradient', inputImage: image, inputBottomLeftColor: bottomLeftColor, inputBottomRightColor: bottomRightColor, inputTopLeftColor: topLeftColor, inputTopRightColor: topRightColor }), TextImage: ({ color, text, fontSize, fontName, image, ...config }: TextImageConfig) => ({ ...config, name: 'IosIFKTextImage', inputImage: image, inputText: text, inputFontName: fontName, inputFontSize: fontSize, inputColor: color }), CircleShape: ({ radius = '50min', color = 'black', image, ...config }: CircleShapeConfig) => ({ ...config, name: 'IosIFKCircleShape', inputRadius: radius, inputColor: color, inputImage: image }), OvalShape: ({ radiusX = '50w', radiusY = '25h', color = 'black', image, ...config }: OvalShapeConfig) => ({ ...config, name: 'IosIFKOvalShape', inputRadiusX: radiusX, inputRadiusY: radiusY, inputColor: color, inputImage: image }), PathShape: ({ color = 'black', image, path, ...config }: PathShapeConfig) => ({ ...config, name: 'IosIFKPathShape', inputColor: color, inputImage: image, inputPath: path }), RegularPolygonShape: ({ color = 'black', image, circumradius = '50min', borderRadiuses = [0, 0, 0], ...config }: RegularPolygonShapeConfig) => ({ ...config, name: 'IosIFKRegularPolygonShape', inputColor: color, inputImage: image, inputCircumradius: circumradius, inputBorderRadiuses: borderRadiuses }) }