feat: show OCR bounding box (#23717)

* feat: ocr bounding box

* bounding boxes

* pr feedback

* pr feedback

* allow copy across text boxes

* pr feedback
This commit is contained in:
Alex
2025-11-19 09:52:40 -06:00
committed by GitHub
parent f59417cc77
commit 56e431226f
9 changed files with 293 additions and 5 deletions

View File

@@ -0,0 +1,44 @@
import { getAssetOcr } from '@immich/sdk';
export type OcrBoundingBox = {
id: string;
assetId: string;
x1: number;
y1: number;
x2: number;
y2: number;
x3: number;
y3: number;
x4: number;
y4: number;
boxScore: number;
textScore: number;
text: string;
};
class OcrManager {
#data = $state<OcrBoundingBox[]>([]);
showOverlay = $state(false);
hasOcrData = $state(false);
get data() {
return this.#data;
}
async getAssetOcr(id: string) {
this.#data = await getAssetOcr({ id });
this.hasOcrData = this.#data.length > 0;
}
clear() {
this.#data = [];
this.showOverlay = false;
this.hasOcrData = false;
}
toggleOcrBoundingBox() {
this.showOverlay = !this.showOverlay;
}
}
export const ocrManager = new OcrManager();