96f412e269
- export: encodeToBase64 thay SkData.toString, dùng expo-media-library/legacy - GPS ảnh gốc: resolver EXIF -> MediaLibrary -> device (ACCESS_MEDIA_LOCATION), tag nguồn watermark - contrast vào color matrix (có hiệu lực mono), ẩn highlight/shadow, denoise/clarity ghi chú export-only - init session tuần tự, tách setState lồng nhau, share file bằng expo-sharing, DONE lưu gallery - Phase 4A: chụp camera thật qua vision-camera takePhoto rồi export filter
49 lines
1.3 KiB
JSON
49 lines
1.3 KiB
JSON
{
|
|
"name": "recipescamera",
|
|
"version": "1.0.0",
|
|
"main": "index.ts",
|
|
"dependencies": {
|
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
"@react-native-community/slider": "5.2.0",
|
|
"@shopify/react-native-skia": "2.6.2",
|
|
"babel-preset-expo": "~57.0.0",
|
|
"expo": "~57.0.7",
|
|
"expo-asset": "~57.0.5",
|
|
"expo-camera": "~57.0.2",
|
|
"expo-dev-client": "~57.0.6",
|
|
"expo-file-system": "~57.0.1",
|
|
"expo-font": "~57.0.1",
|
|
"expo-haptics": "~57.0.1",
|
|
"expo-image-picker": "~57.0.4",
|
|
"expo-location": "~57.0.4",
|
|
"expo-media-library": "~57.0.2",
|
|
"expo-sharing": "~57.0.18",
|
|
"expo-status-bar": "~57.0.1",
|
|
"lucide-react-native": "^1.24.0",
|
|
"nativewind": "^4.2.6",
|
|
"react": "19.2.3",
|
|
"react-dom": "19.2.3",
|
|
"react-native": "0.86.0",
|
|
"react-native-reanimated": "^4.5.0",
|
|
"react-native-safe-area-context": "^5.8.0",
|
|
"react-native-vision-camera": "^4.7.3",
|
|
"react-native-web": "^0.21.2",
|
|
"react-native-worklets-core": "^1.6.3",
|
|
"tailwindcss": "^3.4.19"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "~19.2.2",
|
|
"typescript": "^5.9.3"
|
|
},
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"android": "expo run:android",
|
|
"ios": "expo run:ios",
|
|
"web": "expo start --web"
|
|
},
|
|
"private": true,
|
|
"allowScripts": {
|
|
"@shopify/react-native-skia@2.6.2": true
|
|
}
|
|
}
|