image-js
Version:
Image processing and manipulation in JavaScript
31 lines (28 loc) • 899 B
text/typescript
import type { Image } from '../../../Image.js';
import type { Point } from '../../../geometry/index.js';
/**
* Crop source image for contrast enhancement.
* @param source - Source image enlarged compared to the destination image.
* @param destination - Destination image.
* @param destinationOrigin - Estimated origin of the destination image in the source image (relative to top-left corner).
* @returns The source image without margins.
*/
export function getSourceWithoutMargins(
source: Image,
destination: Image,
destinationOrigin: Point,
): Image {
const width = Math.min(
destination.width,
source.width - destinationOrigin.column,
);
const height = Math.min(
destination.height,
source.height - destinationOrigin.row,
);
return source.crop({
origin: { row: destinationOrigin.row, column: destinationOrigin.column },
width,
height,
});
}