react-image-utilities
Version:
A React component library for image manipulation: cropping, compressing, resizing, format conversion, and effects
49 lines (48 loc) • 1.4 kB
TypeScript
import React from 'react';
export interface BaseImageProps {
image: File | Blob | string;
onProcessingComplete?: (processedImage: Blob) => void;
onError?: (error: Error) => void;
className?: string;
style?: React.CSSProperties;
}
export interface ImageCropProps extends BaseImageProps {
width: number;
height: number;
aspectRatio?: number;
cropX?: number;
cropY?: number;
allowResize?: boolean;
showGrid?: boolean;
gridColor?: string;
}
export interface ImageCompressProps extends BaseImageProps {
quality?: number;
maxSizeMB?: number;
maxWidthOrHeight?: number;
onCompressProgress?: (progress: number) => void;
showProgress?: boolean;
}
export interface ImageResizeProps extends BaseImageProps {
width: number;
height: number;
maintainAspectRatio?: boolean;
resizeMode?: 'contain' | 'cover' | 'stretch';
}
export interface ImageFormatProps extends BaseImageProps {
format: 'jpeg' | 'png' | 'webp' | 'gif';
quality?: number;
}
export interface ImageEffectsProps extends BaseImageProps {
effect: 'grayscale' | 'invert' | 'sepia' | 'blur' | 'brightness' | 'contrast' | 'saturation';
intensity?: number;
blurRadius?: number;
}
export interface ProcessedImageResult {
blob: Blob;
url: string;
originalSize: number;
processedSize: number;
width: number;
height: number;
}