image.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const { createCanvas, loadImage } = require('canvas');
  2. const fs = require('fs');
  3. // 定义图片文件路径
  4. const rasterImagePath = './data/image/raster.png';
  5. const wktImagePath = './data/image/wkt.png';
  6. // 创建一个新的 Canvas
  7. const canvas = createCanvas();
  8. const ctx = canvas.getContext('2d');
  9. // 加载并绘制第一张图片(假设为 raster.png)
  10. loadImage(rasterImagePath).then((rasterImage) => {
  11. // 设置 Canvas 的尺寸为第一张图片的尺寸
  12. canvas.width = rasterImage.width;
  13. canvas.height = rasterImage.height;
  14. // 将第一张图片绘制到 Canvas 上
  15. ctx.drawImage(rasterImage, 0, 0);
  16. // 加载并绘制第二张图片(假设为 wkt.png)
  17. loadImage(wktImagePath).then((wktImage) => {
  18. // 计算第二张图片在 Canvas 上的位置(居中)
  19. const centerX = (canvas.width - wktImage.width) / 2;
  20. const centerY = (canvas.height - wktImage.height) / 2;
  21. // 将第二张图片绘制到 Canvas 上
  22. ctx.drawImage(wktImage, centerX, centerY);
  23. // 将合成后的 Canvas 导出为 PNG 图片
  24. const outputFilePath = './data/image/output.png';
  25. const out = fs.createWriteStream(outputFilePath);
  26. const stream = canvas.createPNGStream();
  27. stream.pipe(out);
  28. out.on('finish', () => console.log('The PNG file was created.'));
  29. }).catch(err => {
  30. console.error('Error loading wkt.png:', err);
  31. });
  32. }).catch(err => {
  33. console.error('Error loading raster.png:', err);
  34. });