add image EXIF information extraction function

This commit is contained in:
2025-01-20 19:26:41 +08:00
parent e1ee33946d
commit 0255e6b75e
9 changed files with 244 additions and 73 deletions

View File

@@ -5,7 +5,7 @@ import {cancelCommentLikeApi, commentLikeApi, commentListApi, replyListApi} from
import {message} from "ant-design-vue";
import {getSlideCaptchaDataApi} from "@/api/captcha";
import QQ_EMOJI from "@/constant/qq_emoji.ts";
import {initNSFWJs, predictNSFW} from "@/utils/nsfw/nsfw.ts";
import {initNSFWJs, predictNSFW} from "@/utils/tfjs/nsfw.ts";
import {NSFWJS} from "nsfwjs";
import i18n from "@/locales";
import localForage from "localforage";

View File

@@ -1,8 +1,12 @@
import localforage from 'localforage';
interface UploadPredictResult {
isAnime: boolean;
hasFace: boolean;
objectArray: string[] | unknown[];
landscape: 'building' | 'forest' | 'glacier' | 'mountain' | 'sea' | 'street' | 'none' | undefined;
landscape: 'building' | 'forest' | 'glacier' | 'mountain' | 'sea' | 'street' | 'none';
isScreenshot: boolean;
topCategory: string | undefined;
}
@@ -11,11 +15,14 @@ export const useUploadStore = defineStore(
() => {
const openUploadDrawer = ref<boolean>(false);
const exifData = ref<any>();
const predictResult = reactive<UploadPredictResult>({
isAnime: false,
hasFace: false,
objectArray: [],
landscape: undefined as 'building' | 'forest' | 'glacier' | 'mountain' | 'sea' | 'street' | 'none' | undefined,
landscape: 'none',
isScreenshot: false,
topCategory: ''
});
/**
@@ -32,21 +39,25 @@ export const useUploadStore = defineStore(
predictResult.isAnime = false;
predictResult.hasFace = false;
predictResult.objectArray = [];
predictResult.landscape = undefined;
predictResult.landscape = 'none';
predictResult.isScreenshot = false;
predictResult.topCategory = '';
}
return {
openUploadDrawer,
predictResult,
exifData,
openUploadDrawerFn,
clearPredictResult
clearPredictResult,
};
},
{
// 开启数据持久化
persistedState: {
persist: false,
storage: localStorage,
storage: localforage,
key: 'upload',
includePaths: []
}

View File

@@ -1,5 +1,5 @@
import {defineStore} from 'pinia';
import {initNSFWJs, predictNSFW} from "@/utils/nsfw/nsfw.ts";
import {initNSFWJs, predictNSFW} from "@/utils/tfjs/nsfw.ts";
import i18n from "@/locales";
import {NSFWJS} from "nsfwjs";