@react-native-community/image-editor
Version:
React Native Image Editing native modules for iOS & Android
104 lines (95 loc) • 2.54 kB
text/typescript
import type { TurboModule } from 'react-native';
import type {
Double,
Float,
Int32,
} from 'react-native/Libraries/Types/CodegenTypes';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
cropImage(
uri: string,
cropData: {
// inlined `ImageCropData` type (for older RN versions 71 and below)
/**
* The top-left corner of the cropped image, specified in the original
* image's coordinate space.
*/
offset: {
x: Double;
y: Double;
};
/**
* The size (dimensions) of the cropped image, specified in the original
* image's coordinate space.
*/
size: {
width: Double;
height: Double;
};
/**
* (Optional) size to scale the cropped image to.
*/
displaySize?: {
width: Double;
height: Double;
};
/**
* (Optional) the resizing mode to use when scaling the image. If the
* `displaySize` param is not specified, this has no effect.
*/
resizeMode?: string;
/**
* (Optional) Compression quality jpg images (number from 0 to 1).
*/
quality?: Float;
/**
* (Optional) The format of the resulting image. Default auto-detection based on given image
*/
format?: string;
/**
* (Optional) Indicates if Base64 formatted picture data should also be included in the result.
*/
includeBase64?: boolean;
/**
* (Optional) An object representing the HTTP headers to send along with the request for a remote image.
*/
headers?: {
[key: string]: string;
};
}
): Promise<{
/**
* The path to the image file (example: '/data/user/0/.../image.jpg')
*/
path: string;
/**
* The URI of the image (example: 'file:///data/user/0/.../image.jpg')
*/
uri: string;
/**
* The name of the image file. (example: 'image.jpg')
*/
name: string;
/**
* The width of the image in pixels
*/
width: Int32;
/**
* The height of the image in pixels
*/
height: Int32;
/**
* The size of the image in bytes
*/
size: Int32;
/**
* MIME type of the image (example: 'image/jpeg')
*/
type: string;
/**
* The base64 string of the image if the `base64` param is true
*/
base64?: string;
}>;
}
export default TurboModuleRegistry.getEnforcing<Spec>('RNCImageEditor');