UNPKG

mindee

Version:

Mindee Client Library for Node.js

36 lines (35 loc) 1.38 kB
import { MindeeError } from "../../errors/index.js"; import { extractImagesFromPolygon } from "../../image/imageExtractor.js"; import { logger } from "../../logger.js"; /** * Extracts a single specified crop from a given input source. * @param inputSource Local input source. * @param crop Crop to extract. * @param quality JPEG quality of extracted image. */ export async function extractSingleCrop(inputSource, crop, quality) { return (await extractMultipleCrops(inputSource, [crop], quality))[0]; } /** * Extracts a list of crops from a document. * @param inputSource Local input source. * @param crops List of crops to extract. * @param quality JPEG quality of extracted images. * @return a list of extracted files, as a CropFiles object. */ export async function extractMultipleCrops(inputSource, crops, quality) { if (crops.length === 0) { throw new MindeeError("No crop indexes provided."); } await inputSource.init(); logger.debug("Extracting crops: " + crops.join(", ")); const polygonsByPage = new Map(); for (const crop of crops) { const pageId = crop.location.page; if (!polygonsByPage.has(pageId)) { polygonsByPage.set(pageId, []); } polygonsByPage.get(pageId).push(crop.location.polygon); } return await extractImagesFromPolygon(inputSource, polygonsByPage, quality); }