mirror of
				https://github.com/C4illin/ConvertX.git
				synced 2025-11-04 05:53:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			340 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			340 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { exec } from "node:child_process";
 | 
						|
 | 
						|
export const properties = {
 | 
						|
  from: {
 | 
						|
    image: [
 | 
						|
      "3fr",
 | 
						|
      "8bim",
 | 
						|
      "8bimtext",
 | 
						|
      "8bimwtext",
 | 
						|
      "app1",
 | 
						|
      "app1jpeg",
 | 
						|
      "art",
 | 
						|
      "arw",
 | 
						|
      "avs",
 | 
						|
      "b",
 | 
						|
      "bie",
 | 
						|
      "bigtiff",
 | 
						|
      "bmp",
 | 
						|
      "c",
 | 
						|
      "cals",
 | 
						|
      "caption",
 | 
						|
      "cin",
 | 
						|
      "cmyk",
 | 
						|
      "cmyka",
 | 
						|
      "cr2",
 | 
						|
      "crw",
 | 
						|
      "cur",
 | 
						|
      "cut",
 | 
						|
      "dcm",
 | 
						|
      "dcr",
 | 
						|
      "dcx",
 | 
						|
      "dng",
 | 
						|
      "dpx",
 | 
						|
      "epdf",
 | 
						|
      "epi",
 | 
						|
      "eps",
 | 
						|
      "epsf",
 | 
						|
      "epsi",
 | 
						|
      "ept",
 | 
						|
      "ept2",
 | 
						|
      "ept3",
 | 
						|
      "erf",
 | 
						|
      "exif",
 | 
						|
      "fax",
 | 
						|
      "file",
 | 
						|
      "fits",
 | 
						|
      "fractal",
 | 
						|
      "ftp",
 | 
						|
      "g",
 | 
						|
      "gif",
 | 
						|
      "gif87",
 | 
						|
      "gradient",
 | 
						|
      "gray",
 | 
						|
      "graya",
 | 
						|
      "heic",
 | 
						|
      "heif",
 | 
						|
      "hrz",
 | 
						|
      "http",
 | 
						|
      "icb",
 | 
						|
      "icc",
 | 
						|
      "icm",
 | 
						|
      "ico",
 | 
						|
      "icon",
 | 
						|
      "identity",
 | 
						|
      "image",
 | 
						|
      "iptc",
 | 
						|
      "iptctext",
 | 
						|
      "iptcwtext",
 | 
						|
      "jbg",
 | 
						|
      "jbig",
 | 
						|
      "jng",
 | 
						|
      "jnx",
 | 
						|
      "jpeg",
 | 
						|
      "jpg",
 | 
						|
      "k",
 | 
						|
      "k25",
 | 
						|
      "kdc",
 | 
						|
      "label",
 | 
						|
      "m",
 | 
						|
      "mac",
 | 
						|
      "map",
 | 
						|
      "mat",
 | 
						|
      "mef",
 | 
						|
      "miff",
 | 
						|
      "mng",
 | 
						|
      "mono",
 | 
						|
      "mpc",
 | 
						|
      "mrw",
 | 
						|
      "msl",
 | 
						|
      "mtv",
 | 
						|
      "mvg",
 | 
						|
      "nef",
 | 
						|
      "null",
 | 
						|
      "o",
 | 
						|
      "orf",
 | 
						|
      "otb",
 | 
						|
      "p7",
 | 
						|
      "pal",
 | 
						|
      "palm",
 | 
						|
      "pam",
 | 
						|
      "pbm",
 | 
						|
      "pcd",
 | 
						|
      "pcds",
 | 
						|
      "pct",
 | 
						|
      "pcx",
 | 
						|
      "pdb",
 | 
						|
      "pdf",
 | 
						|
      "pef",
 | 
						|
      "pfa",
 | 
						|
      "pfb",
 | 
						|
      "pgm",
 | 
						|
      "picon",
 | 
						|
      "pict",
 | 
						|
      "pix",
 | 
						|
      "plasma",
 | 
						|
      "png",
 | 
						|
      "png00",
 | 
						|
      "png24",
 | 
						|
      "png32",
 | 
						|
      "png48",
 | 
						|
      "png64",
 | 
						|
      "png8",
 | 
						|
      "pnm",
 | 
						|
      "ppm",
 | 
						|
      "ps",
 | 
						|
      "ptif",
 | 
						|
      "pwp",
 | 
						|
      "r",
 | 
						|
      "raf",
 | 
						|
      "ras",
 | 
						|
      "rgb",
 | 
						|
      "rgba",
 | 
						|
      "rla",
 | 
						|
      "rle",
 | 
						|
      "sct",
 | 
						|
      "sfw",
 | 
						|
      "sgi",
 | 
						|
      "sr2",
 | 
						|
      "srf",
 | 
						|
      "stegano",
 | 
						|
      "sun",
 | 
						|
      "svg",
 | 
						|
      "svgz",
 | 
						|
      "text",
 | 
						|
      "tga",
 | 
						|
      "tif",
 | 
						|
      "tiff",
 | 
						|
      "tile",
 | 
						|
      "tim",
 | 
						|
      "topol",
 | 
						|
      "ttf",
 | 
						|
      "txt",
 | 
						|
      "uyvy",
 | 
						|
      "vda",
 | 
						|
      "vicar",
 | 
						|
      "vid",
 | 
						|
      "viff",
 | 
						|
      "vst",
 | 
						|
      "wbmp",
 | 
						|
      "webp",
 | 
						|
      "wmf",
 | 
						|
      "wpg",
 | 
						|
      "x3f",
 | 
						|
      "xbm",
 | 
						|
      "xc",
 | 
						|
      "xcf",
 | 
						|
      "xmp",
 | 
						|
      "xpm",
 | 
						|
      "xv",
 | 
						|
      "xwd",
 | 
						|
      "y",
 | 
						|
      "yuv",
 | 
						|
    ],
 | 
						|
  },
 | 
						|
  to: {
 | 
						|
    image: [
 | 
						|
      "8bim",
 | 
						|
      "8bimtext",
 | 
						|
      "8bimwtext",
 | 
						|
      "app1",
 | 
						|
      "app1jpeg",
 | 
						|
      "art",
 | 
						|
      "avs",
 | 
						|
      "b",
 | 
						|
      "bie",
 | 
						|
      "bigtiff",
 | 
						|
      "bmp",
 | 
						|
      "bmp2",
 | 
						|
      "bmp3",
 | 
						|
      "brf",
 | 
						|
      "c",
 | 
						|
      "cals",
 | 
						|
      "cin",
 | 
						|
      "cmyk",
 | 
						|
      "cmyka",
 | 
						|
      "dcx",
 | 
						|
      "dpx",
 | 
						|
      "epdf",
 | 
						|
      "epi",
 | 
						|
      "eps",
 | 
						|
      "eps2",
 | 
						|
      "eps3",
 | 
						|
      "epsf",
 | 
						|
      "epsi",
 | 
						|
      "ept",
 | 
						|
      "ept2",
 | 
						|
      "ept3",
 | 
						|
      "exif",
 | 
						|
      "fax",
 | 
						|
      "fits",
 | 
						|
      "g",
 | 
						|
      "gif",
 | 
						|
      "gif87",
 | 
						|
      "gray",
 | 
						|
      "graya",
 | 
						|
      "histogram",
 | 
						|
      "html",
 | 
						|
      "icb",
 | 
						|
      "icc",
 | 
						|
      "icm",
 | 
						|
      "info",
 | 
						|
      "iptc",
 | 
						|
      "iptctext",
 | 
						|
      "iptcwtext",
 | 
						|
      "isobrl",
 | 
						|
      "isobrl6",
 | 
						|
      "jbg",
 | 
						|
      "jbig",
 | 
						|
      "jng",
 | 
						|
      "jpeg",
 | 
						|
      "k",
 | 
						|
      "m",
 | 
						|
      "m2v",
 | 
						|
      "map",
 | 
						|
      "mat",
 | 
						|
      "matte",
 | 
						|
      "miff",
 | 
						|
      "mng",
 | 
						|
      "mono",
 | 
						|
      "mpc",
 | 
						|
      "mpeg",
 | 
						|
      "mpg",
 | 
						|
      "msl",
 | 
						|
      "mtv",
 | 
						|
      "mvg",
 | 
						|
      "null",
 | 
						|
      "o",
 | 
						|
      "otb",
 | 
						|
      "p7",
 | 
						|
      "pal",
 | 
						|
      "pam",
 | 
						|
      "pbm",
 | 
						|
      "pcd",
 | 
						|
      "pcds",
 | 
						|
      "pcl",
 | 
						|
      "pct",
 | 
						|
      "pcx",
 | 
						|
      "pdb",
 | 
						|
      "pdf",
 | 
						|
      "pgm",
 | 
						|
      "picon",
 | 
						|
      "pict",
 | 
						|
      "png",
 | 
						|
      "png00",
 | 
						|
      "png24",
 | 
						|
      "png32",
 | 
						|
      "png48",
 | 
						|
      "png64",
 | 
						|
      "png8",
 | 
						|
      "pnm",
 | 
						|
      "ppm",
 | 
						|
      "preview",
 | 
						|
      "ps",
 | 
						|
      "ps2",
 | 
						|
      "ps3",
 | 
						|
      "ptif",
 | 
						|
      "r",
 | 
						|
      "ras",
 | 
						|
      "rgb",
 | 
						|
      "rgba",
 | 
						|
      "sgi",
 | 
						|
      "shtml",
 | 
						|
      "sun",
 | 
						|
      "text",
 | 
						|
      "tga",
 | 
						|
      "tiff",
 | 
						|
      "txt",
 | 
						|
      "ubrl",
 | 
						|
      "ubrl6",
 | 
						|
      "uil",
 | 
						|
      "uyvy",
 | 
						|
      "vda",
 | 
						|
      "vicar",
 | 
						|
      "vid",
 | 
						|
      "viff",
 | 
						|
      "vst",
 | 
						|
      "wbmp",
 | 
						|
      "webp",
 | 
						|
      "x",
 | 
						|
      "xbm",
 | 
						|
      "xmp",
 | 
						|
      "xpm",
 | 
						|
      "xv",
 | 
						|
      "xwd",
 | 
						|
      "y",
 | 
						|
      "yuv",
 | 
						|
    ],
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export function convert(
 | 
						|
  filePath: string,
 | 
						|
  fileType: string,
 | 
						|
  convertTo: string,
 | 
						|
  targetPath: string,
 | 
						|
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
 | 
						|
  options?: unknown,
 | 
						|
): Promise<string> {
 | 
						|
  return new Promise((resolve, reject) => {
 | 
						|
    exec(
 | 
						|
      `gm convert "${filePath}" "${targetPath}"`,
 | 
						|
      (error, stdout, stderr) => {
 | 
						|
        if (error) {
 | 
						|
          reject(`error: ${error}`);
 | 
						|
        }
 | 
						|
 | 
						|
        if (stdout) {
 | 
						|
          console.log(`stdout: ${stdout}`);
 | 
						|
        }
 | 
						|
 | 
						|
        if (stderr) {
 | 
						|
          console.error(`stderr: ${stderr}`);
 | 
						|
        }
 | 
						|
 | 
						|
        resolve("success");
 | 
						|
      },
 | 
						|
    );
 | 
						|
  });
 | 
						|
}
 |