hejianhao
2026-04-02 0940d56748a73525790c350c393a5be960aab62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
 * 图像处理工具统一导出
 * 所有图片相关功能的入口
 */
 
// 基础工具(包含了原gallery/imageUtils的功能)
export * from './imageHelper'
export { log } from './logger'
 
// 核心服务
export { default as imageProcessor } from './imageProcessor'
export { default as imageCacheService } from './imageCacheService'
export { default as imageExporter } from './imageExporter'
 
// 图片处理功能
export { 
  generateAnnotationThumbnail,
  createImageLevelAnnotation,
  batchGenerateThumbnails,
  getThumbnailUrl
} from './imageProcessor'
 
// 缓存管理功能
export {
  default as cacheService
} from './imageCacheService'
 
// 导出功能
export {
  exportAnnotationRegion,
  batchExportAnnotations,
  exportProjectAnnotations,
  exportToCOCO
} from './imageExporter'
 
// 兼容一下之前的版本(使用 imageLoader)
export { useImageLoader } from './imageLoader'
 
// 工具函数集合
import imageProcessorInstance from './imageProcessor';
import imageCacheServiceInstance from './imageCacheService';
import imageExporterInstance from './imageExporter';
 
export const ImageUtils = {
  // 从 imageProcessor
  generateThumbnail: imageProcessorInstance.generateAnnotationThumbnail.bind(imageProcessorInstance),
  createAnnotation: imageProcessorInstance.createImageLevelAnnotation.bind(imageProcessorInstance),
  
  // 从 imageCacheService  
  loadImage: imageCacheServiceInstance.loadImage.bind(imageCacheServiceInstance),
  loadThumbnail: imageCacheServiceInstance.loadThumbnail.bind(imageCacheServiceInstance),
  preloadImages: imageCacheServiceInstance.preloadImages.bind(imageCacheServiceInstance),
  clearCache: imageCacheServiceInstance.clearAll.bind(imageCacheServiceInstance),
  
  // 从 imageExporter
  exportRegion: imageExporterInstance.exportAnnotationRegion.bind(imageExporterInstance),
  exportBatch: imageExporterInstance.batchExportAnnotations.bind(imageExporterInstance),
  exportProject: imageExporterInstance.exportProjectAnnotations.bind(imageExporterInstance),
  exportCOCO: imageExporterInstance.exportToCOCO.bind(imageExporterInstance)
}