You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
700 B
TypeScript
24 lines
700 B
TypeScript
import { resolve } from "path";
|
|
import AbortablePromise from "abortable-gen-promises";
|
|
import { deferedSpawn } from "async-spawner";
|
|
import tempy from "tempy";
|
|
|
|
export default function perspectiveShift(
|
|
source_image: string,
|
|
reverse_transform_parameters: number[],
|
|
output_image: string = tempy.file({ extension: "jpg" })
|
|
): AbortablePromise<any> {
|
|
return new AbortablePromise(async function* (await_or_abort) {
|
|
const def = await deferedSpawn("python", [
|
|
resolve(__dirname, "../main.py"),
|
|
source_image,
|
|
reverse_transform_parameters.join(","),
|
|
output_image,
|
|
]);
|
|
yield;
|
|
return await_or_abort(def.waitForAnswer(), () => {
|
|
def.kill();
|
|
});
|
|
});
|
|
}
|