代码拉取完成,页面将自动刷新
import type { TurboModule } from "react-native/library/TurboModule/RCTExport";
import { TurboModuleRegistry } from "react-native";
type ImageOrVideo = Image | Video;
type SmartAlbums = | 'Regular' | 'SyncedEvent' | 'SyncedFaces';
type CompressVideoPresets = | 'LowQuality' | 'MediumQuality' | 'HighestQuality' | 'Passthrough';
type Options = AnyOptions | VideoOptions | ImageOptions;
type MediaType = 'photo' | 'video' | 'any';
type AnyOptions = Omit<ImageOptions, 'mediaType'> & Omit<VideoOptions, 'mediaType'> & {
mediaType?: 'any';
}
type VideoOptions = CommonOptions & {
mediaType: 'video';
compressVideoPreset?: CompressVideoPresets;
}
type CropperOptions = ImageOptions & {
path: string;
}
type ImageOptions = CommonOptions & {
mediaType: MediaType;
width?: number;
height?: number;
includeBase64?: boolean;
includeExif?: boolean;
forceJpg?: boolean;
cropping?: boolean;
avoidEmptySpaceAroundImage?: boolean;
cropperActiveWidgetColor?: string;
cropperStatusBarColor?: string;
cropperToolbarColor?: string;
cropperToolbarWidgetColor?: string;
cropperToolbarTitle?: string;
freeStyleCropEnabled?: boolean;
cropperTintColor?: string;
cropperCircleOverlay?: boolean;
cropperCancelText?: string;
cropperCancelColor?: string;
cropperChooseText?: string;
cropperChooseColor?: string;
cropperRotateButtonHidden?: boolean
showCropGuidelines?: boolean;
showCropFrame?: boolean;
enableRotationGesture?: boolean;
disableCropperColorSetters?: boolean;
compressImageMaxWidth?: number;
compressImageMaxHeight?: number;
compressImageQuality?: number;
}
export interface CommonOptions {
multiple?: boolean;
minFiles?: number;
maxFiles?: number;
waitAnimationEnd?: boolean;
smartAlbums?: SmartAlbums[];
useFrontCamera?: boolean;
loadingLabelText?: string;
showsSelectedCount?: boolean;
sortOrder?: 'none' | 'asc' | 'desc';
hideBottomControls?: boolean;
writeTempFile?: boolean;
}
export interface CropRect {
x: number;
y: number;
width: number;
height: number;
}
interface ImageVideoCommon {
path: string;
size: number;
width: number;
height: number;
mime: string;
exif?: Exif;
localIdentifier?: string;
sourceURL?: string;
filename?: string;
creationDate?: string;
modificationDate?: string;
}
export interface Exif {
}
interface Image extends ImageVideoCommon {
data?: string | null;
cropRect?: CropRect | null;
}
interface Video extends ImageVideoCommon {
duration: number | null;
}
export interface Spec extends TurboModule {
openPicker(options: Options): Promise<Video[] | Video | ImageOrVideo[] | ImageOrVideo | Image[] | Image>;
openCamera(options: Options): Promise<Video[] | Video | ImageOrVideo[] | ImageOrVideo | Image[] | Image>;
openCropper(options: CropperOptions): Promise<Image>;
clean(): Promise<void>;
cleanSingle(path: string): Promise<void>;
}
export default TurboModuleRegistry.getEnforcing<Spec>('ImageCropPicker')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。