diff --git a/imageStorage.mjs b/imageStorage.mjs new file mode 100644 index 0000000..72be7ae --- /dev/null +++ b/imageStorage.mjs @@ -0,0 +1,66 @@ +const imageStorage = new Map(); +let imageCounter = 0; + +/** + * 保存图片到内存中 + * @param {string} base64Data base64 数据 + * @param {string} mediaType 媒体类型 ("image/jpeg") + * @returns {{ imageId: string, mediaType: string }} 返回图片信息 + */ +export function storeImage(base64Data, mediaType) { + const randomPart = Math.floor(Math.random() * 10000); + const imageId = `image_${Date.now()}_${imageCounter++}_${randomPart}`; + + imageStorage.set(imageId, { imageId, base64Data, mediaType }); + // console.log(`Image stored with ID: ${imageId}, Media Type: ${mediaType}`); + // 打印存储的 base64 + // console.log(`Base64 Data for Image ID ${imageId}: ${base64Data.substring(0, 100)}...`); + + return { imageId, mediaType }; +} + +/** + * 获取图片数据 + * @param {string} imageId 图片 ID + * @returns {object|null} base64 数据和媒体类型 + */ +export function getImage(imageId) { + return imageStorage.get(imageId) || null; +} + +/** + * 获取最后一个图片 + * @returns {object|null} base64 数据和媒体类型 + */ +export function getLastImage() { + const lastKey = Array.from(imageStorage.keys()).pop(); + return lastKey ? imageStorage.get(lastKey) : null; +} + +/** + * 删除图片数据 + * @param {string} imageId 图片 ID + */ +export function removeImage(imageId) { + imageStorage.delete(imageId); +} + +/** + * 清空所有存储的图片 + */ +export function clearAllImages() { + imageStorage.clear(); + imageCounter = 0; + // console.log("All images have been cleared from memory."); +} + +/** + * 打印所有存储的图片 + */ +export function printAllImages() { + console.log('Current images stored in memory:'); + imageStorage.forEach((value, key) => { + console.log(`Image ID: ${key}, Media Type: ${value.mediaType}`); + console.log(`Base64 Data: ${value.base64Data.substring(0, 100)}...`); + }); +}