使用node实现输出iOS图标文件AppIcon.appiconset

要实现这个功能,你可以使用Node.js的fs模块来读取和写入文件,使用sharp库来处理图片,以及使用path模块来处理文件路径。

首先,你需要安装sharp库,可以使用以下命令进行安装:

npm install sharp

然后,你可以使用以下代码来实现这个功能:

const fs = require('fs');
const sharp = require('sharp');
const path = require('path');

// 定义要生成的AppIcon尺寸
const sizes = [
  { size: 20, scale: 1 },
  { size: 20, scale: 2 },
  { size: 20, scale: 3 },
  // 添加其他尺寸和比例
];

// 读取输入的图片
const inputPath = 'input.png';
const image = sharp(inputPath);

// 创建输出目录
const outputDir = 'AppIcon.appiconset';
fs.mkdirSync(outputDir);

// 生成每个尺寸的AppIcon
sizes.forEach(({ size, scale }) => {
  const outputSize = size * scale;
  const outputFilename = `AppIcon-${size}x${size}@${scale}x.png`;
  const outputPath = path.join(outputDir, outputFilename);

  image
    .resize(outputSize, outputSize)
    .toFile(outputPath, (err) => {
      if (err) {
        console.error(`Failed to generate ${outputPath}: ${err}`);
      } else {
        console.log(`Generated ${outputPath}`);
      }
    });
});

// 生成Contents.json
const contents = {
  images: sizes.map(({ size, scale }) => ({
    size: `${size}x${size}`,
    scale: `${scale}x`,
    filename: `AppIcon-${size}x${size}@${scale}x.png`,
  })),
  info: {
    version: 1,
    author: 'Your Name',
  },
};

const contentsPath = path.join(outputDir, 'Contents.json');
fs.writeFileSync(contentsPath, JSON.stringify(contents, null, 2));

console.log(`Generated ${contentsPath}`);

在上面的代码中,你需要将input.png替换为你要生成AppIcon的输入图片路径。然后,根据需要定义要生成的AppIcon尺寸和比例,将其添加到sizes数组中。代码会自动根据输入图片生成对应尺寸和比例的AppIcon,并将其保存到AppIcon.appiconset目录中。最后,代码会生成一个Contents.json文件,描述了生成的AppIcon文件的信息。

运行上面的代码后,你将在当前目录下看到生成的AppIcon.appiconset目录和对应的Contents.json文件。

你可能感兴趣的:(我的node.js,node,ios)