替换 PNG 文件中的颜色
Posted
技术标签:
【中文标题】替换 PNG 文件中的颜色【英文标题】:Replacing a color in PNG files 【发布时间】:2021-12-21 21:33:20 【问题描述】:我在 http://pousse.rapiere.free.fr/tome/ 找到了一个包含地牢游戏 PNG 文件的库。
但是,图块的背景不是“透明”的,而是“#ff00ff”或白色的。
如何用 rgba(0,0,0,0) 轻松替换颜色?我可以将图像加载到 html5 画布中并替换那里的颜色,但也许有更简单的方法?
【问题讨论】:
那里有几十个链接到数百张图片,有些是洋红色背景的,有些是白色的,有些是透明的……你能说得更具体些吗? 嗯,图片在下载部分。那里的图像有一个洋红色的背景组。 【参考方案1】:好吧,我刚刚找到了replace-color
函数,并编写了一个更新文件夹中所有PNG文件的工具:
const fs = require('fs');
const path = require('path');
const replaceColor = require('replace-color');
function findPngFiles(dir)
var files = fs.readdirSync(dir);
var pngFiles = [];
for (let file of files)
file = path.join(dir, file);
if (path.extname(file).toLowerCase() === '.png')
pngFiles.push(file);
if (fs.statSync(file).isDirectory())
pngFiles = pngFiles.concat(findPngFiles(file));
return pngFiles;
async function updateImage(file)
replaceColor(
image: file,
colors:
type: 'hex',
targetColor: '#FF00FF',
replaceColor: '#00000000'
)
.then((jimpObject) =>
jimpObject.write(file, (err) =>
if (err) return console.log(err);
);
)
.catch((err) =>
console.log(err);
);
const pngFiles = findPngFiles('./Items');
(async function updateFiles()
for(let file of pngFiles)
await updateImage(file);
console.log(file);
)()
【讨论】:
以上是关于替换 PNG 文件中的颜色的主要内容,如果未能解决你的问题,请参考以下文章