0 Star 0 Fork 0

RN鸿蒙化项目团队/react-native-image-crop-picker

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
NativeRNCImageCropPicker.ts 2.90 KB
一键复制 编辑 原始数据 按行查看 历史
林志鹏 提交于 2024-11-12 20:32 +08:00 . feat: image-crop-picker 鸿蒙化
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')
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/harmonytsc_rn/react-native-image-crop-picker.git
git@gitee.com:harmonytsc_rn/react-native-image-crop-picker.git
harmonytsc_rn
react-native-image-crop-picker
react-native-image-crop-picker
master

搜索帮助